Стратегия тестирования сервисов WCF - PullRequest
3 голосов
/ 13 декабря 2011

Какова предпочтительная стратегия тестирования для тестирования служб WCF?

Должен ли я внедрять службы, размещать их и затем тестировать их?

Или

Следует ли внедрятьслужбы, затем протестировать DLLS службы и затем разместить их?

Можете ли вы порекомендовать хорошую стратегию тестирования WCF?

Я реализовал несколько служб WCF, которые будут развернуты в интрасети, размещенных с использованиемwshttpbinding и работают под Windows-сервисами.

Ответы [ 3 ]

8 голосов
/ 13 декабря 2011

Что я обычно делал, это создавал два набора тестов.Одним из них является unit тесты, где я создаю экземпляр реализации сервиса и тестирую его.Это полностью обходит WCF.

Затем у меня есть отдельный тестовый проект, который я в итоге называю интеграционными тестами, где я запускаю экземпляр фактической службы WCF (обычно в самостоятельнойразмещен), и создайте экземпляр клиента WCF, и вызовите клиента и проверьте результат.При этом используется WCF, в основном это просто запросы к моим службам через localhost.

Я считаю, что это обеспечивает наилучшее покрытие в тестах, поскольку иногда вы сталкиваетесь с ошибками WCF, которые вы бы обычно не улавливали, если бы вас обошлиWCF.

2 голосов
/ 13 декабря 2011

В моей службе WCF не было никакой логики. он всегда делегирует вызовы другой службе.

Чтобы я мог протестировать сервис без каких-либо ссылок на WCF.

Этот подход помог мне протестировать сервис wcf.

1009 * Е.Г. *

public class CalcService
{
   public int Add(int x, int y) 
   {
       return x+y;
   }
}

Хост службы Calc

public class CalculaterService
{

   private CalcService _calcService;
   public CalcService CalcService {get { return _calcService;}}

   public CalculaterService(CalcService calcService) 
   {
      _calcService = calcService;
   }

   public int Add(int x, int y) 
   {
     return CalcService.Add(x, y);
   }

}
0 голосов
/ 13 декабря 2011

Вы можете использовать WCF SVCTraceViewer для просмотра и отслеживания операций wcf

проверьте эту ссылку также для получения подробной информации

http://msdn.microsoft.com/en-us/windows/bb980924.aspx

...