Модульный тест WCF

preg_quote() - это то, что вы ищете:

Описание

string preg_quote ( string $str [, string $delimiter = NULL ] )

preg_quote () принимает str и помещает обратная косая черта перед каждым символом, который является частью синтаксиса регулярных выражений. Это полезно, если у вас есть строка времени выполнения, которую нужно сопоставить в некотором тексте, и строка может содержать специальные регулярные символы.

Специальные символы регулярного выражения: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

Параметры

str

Входная строка.

разделитель

Если задан дополнительный разделитель, он также будет экранирован. Это полезно для устранения разделителя, который требуется для функций PCRE.

blockquote>

Важно отметить, что если аргумент $delimiter не указан, разделитель - символ, используемый для включения вашего регулярное выражение, обычно косая черта (/) - не будет экранирована. Обычно вы хотите передать любой разделитель, который вы используете с вашим регулярным выражением, в качестве аргумента $delimiter.

Пример - используя preg_match для поиска вхождений заданного URL-адреса, окруженного пробелами:

$url = 'http://stackoverflow.com/questions?sort=newest';

// preg_quote escapes the dot, question mark and equals sign in the URL (by
// default) as well as all the forward slashes (because we pass '/' as the
// $delimiter argument).
$escapedUrl = preg_quote($url, '/');

// We enclose our regex in '/' characters here - the same delimiter we passed
// to preg_quote
$regex = '/\s' . $escapedUrl . '\s/';
// $regex is now:  /\shttp\:\/\/stackoverflow\.com\/questions\?sort\=newest\s/

$haystack = "Bla bla http://stackoverflow.com/questions?sort=newest bla bla";
preg_match($regex, $haystack, $matches);

var_dump($matches);
// array(1) {
//   [0]=>
//   string(48) " http://stackoverflow.com/questions?sort=newest "
// }

36
задан Mihai Limbășan 19 October 2008 в 07:50
поделиться

7 ответов

Как aku говорит, если Вы тестируете сервисные методы (т.е. кодируйте поведение), тогда Вы можете модульный тест, которые непосредственно и обходят инфраструктуру WCF. Конечно, если Ваш код зависит от классов контекста WCF (как OperationContext) тогда, я предлагаю представить обертки во многом как ASP.NET, который MVC делает для HttpContext.

Для тестирования возможности соединения, это будет зависеть от типа конечных точек, которые Вы настроили. В некоторых случаях можно просто саморазместить сервис WCF в модульном тесте (как Вы, был бы со службой Windows WCF), и протестируйте это.

Однако Вы, возможно, должны вращать веб-сервер Разработки ASP.NET или даже IIS, если Вы хотите протестировать поведение WCF, характерное для тех, которые размещают среды (т.е. SSL, методы аутентификации). Это становится хитрым и может начать требовать у конфигурации общей машины разработки и серверов сборки, но выполнимо.

26
ответ дан Jason Stangroome 23 September 2019 в 22:21
поделиться

Если Вы действительно хотите протестировать сервисы WCF, лучше идти с интеграционными тестами, которые на самом деле осуществляют часть возможности соединения клиент-сервер его.

5
ответ дан cruizer 23 September 2019 в 22:21
поделиться

Что точно Вы хотите протестировать? Возможность соединения или сервисные методы?

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

Возможность соединения может быть протестирована путем хостинга сервиса непосредственно в UT или на веб-сервере разработки.

Что касается инструментов, Вы существуют тонны платформ поблочного тестирования: NUnit, встроенные тесты в Visual Studio, xUnit, и т.д., и т.д.

можно загрузить" Visual Studio 2008 и Платформа.NET 3.5 Учебных Набора " и" Платформа.NET 3.5 Набора Обучения Улучшениям ", если я вспоминаю правильно были образцы для модульных тестов WCF

12
ответ дан aku 23 September 2019 в 22:21
поделиться

Если Вы хотите протестировать фактический рабочий сервис тогда , SoapUI свободен и имеет некоторые превосходные функции. Единственный протест состоит в том, что я только попробовал его Основным HTTP-связыванием.

4
ответ дан Thomas Bratt 23 September 2019 в 22:21
поделиться

Можно использовать Изолятор Typemock, чтобы сделать это. Вот несколько сообщений по вопросу о тестировании сторона клиента , и сторона сервера . Можно сделать это без любой зависимости, включая файл конфигурации.

Gil Zilberfeld Typemock

2
ответ дан 23 September 2019 в 22:21
поделиться

Я видел , Тест SOA раньше оценивал производительность и тесты масштабируемости на сервисах WCF, если это - то, что Вы ищете. У меня нет информации о стоимости или liscencing.

В нашем случае, мы получили сообщения от нашего UI для выполнения автоматизированного тестирования.

0
ответ дан Berkshire 23 September 2019 в 22:21
поделиться

Typemock Isolator - это инструмент для модульного тестирования wcf-сервисов , среди прочего ...

2
ответ дан 27 November 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: