У меня есть класс A
, который выставляет HttpRequestHeaders
как собственность. Испытуемый класс - B
.Заменить закрытый класс
B
используетA
.A
также является поддельным классом, который используется только для модульного теста.A
Наследует интерфейс, который налагает определение свойстваHttpRequestHeaders
.
Поэтому мне нужно заменить HttpRequestHeaders
, так что я могу проверить B
К сожалению HttpRequestHeaders
закрытый класс, таким образом, она не может быть заменой на NSubstitute:
Не удалось загрузить «Castle.Proxies типа. HttpRequestHeadersProxy_2 'от сборка' DynamicProxyGenAssembly2, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = a621a9e7e5c32e69 ', потому что родительский тип запечатан.
Какое будет общее решение для преодоления этой ситуации?
Почему вы не нарушаете зависимость между B и A путем сопряжения A? Извлеките интерфейс из A и используйте его в B. –
@AlexPeta это уже так. Интерфейс требует свойство «HttpRequestHeaders». Это не меняет проблему – mathk
ok, затем переходите на один уровень вверх. сделайте свой на поддельной HttpRequestHeadersFake: HttpHeaders и используйте это в реализации FakeA –