Местоположение WCF, замеченное в тесте - PullRequest
2 голосов
/ 06 июля 2010

WCF проект в Испытательной обвязке.

Зачем HttpContext.Current.Server.MapPath ("~ /"); или же HttpContext.Current.Server.MapPath ( "");

не пройден в моем тесте?

Я пытаюсь собрать модуль построения PDF для существующего приложения. Я должен определить, где написать окончательный вывод.

ТИА

1 Ответ

4 голосов
/ 06 июля 2010

Причина, по которой ваши модульные тесты дают сбой, заключается в том, что HttpContext.Current требует контекст ASP.NET, который практически невозможно воссоздать в модульном тесте.Фреймворки, такие как ASP.NET MVC, абстрагируют это, используя HttpContextBase , который можно легко смоделировать в модульном тесте.

Также вам не следует использовать HttpContext в WCF.Если вы самостоятельно размещаете службу WCF, она будет работать не только в модульных тестах, но и при выполнении, что еще хуже.

Вывод:

  • Каждый раз, когда вы пишете HttpContext.Current вметод по определению, этот метод не тестируется на модуле, поэтому даже не пытайтесь его тестировать.
  • Никогда не используйте HttpContext.Current в WCF (и если вы читали предыдущий пункт, не только в WCF: -))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...