У меня есть класс A
, который предоставляет HttpRequestHeaders
как свойство. Тестируемый класс — B
.
B
используетA
.A
также является поддельным классом, который используется только для модульного тестирования.A
наследуют интерфейс, который накладывает определение свойстваHttpRequestHeaders
.
Поэтому мне нужно заменить HttpRequestHeaders
, чтобы я мог протестировать B
. К сожалению, HttpRequestHeaders
является закрытым классом, поэтому его нельзя заменить с помощью NSubstitute:
Не удалось загрузить тип «Castle.Proxies.HttpRequestHeadersProxy_2» из сборки «DynamicProxyGenAssembly2, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = a621a9e7e5c32e69», поскольку родительский тип запечатан.
Каким было бы общее решение для преодоления этой ситуации?
HttpRequestHeaders
. Это не меняет проблемы - person mathk   schedule 21.02.2014System.Net.Http.Headers
, поэтому я не очень хочу этого делать. Если бы я мог, я бы не стал отмечать этот класс как запечатанный. - person mathk   schedule 21.02.2014HttpRequestHeaders
- person mathk   schedule 21.02.2014A
не может использовать настоящий объектHttpRequestHeaders
— просто создайте объектHttpRequestMessage
и получите его свойствоHeaders
? - person Damien_The_Unbeliever   schedule 21.02.2014HttpRequestHeaders
, потому что это внутренний $#%@@&5. И захват его с другого объекта может быть решением, но это выглядит немного неуклюжим. Во всяком случае, это кажется более подходящим решением. Спасибо. Пожалуйста, напишите это как правильный ответ, и я приму его. - person mathk   schedule 21.02.2014