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 " // }
Как aku говорит, если Вы тестируете сервисные методы (т.е. кодируйте поведение), тогда Вы можете модульный тест, которые непосредственно и обходят инфраструктуру WCF. Конечно, если Ваш код зависит от классов контекста WCF (как OperationContext) тогда, я предлагаю представить обертки во многом как ASP.NET, который MVC делает для HttpContext.
Для тестирования возможности соединения, это будет зависеть от типа конечных точек, которые Вы настроили. В некоторых случаях можно просто саморазместить сервис WCF в модульном тесте (как Вы, был бы со службой Windows WCF), и протестируйте это.
Однако Вы, возможно, должны вращать веб-сервер Разработки ASP.NET или даже IIS, если Вы хотите протестировать поведение WCF, характерное для тех, которые размещают среды (т.е. SSL, методы аутентификации). Это становится хитрым и может начать требовать у конфигурации общей машины разработки и серверов сборки, но выполнимо.
Если Вы действительно хотите протестировать сервисы WCF, лучше идти с интеграционными тестами, которые на самом деле осуществляют часть возможности соединения клиент-сервер его.
Что точно Вы хотите протестировать? Возможность соединения или сервисные методы?
Прохладная вещь о WCF состоит в том, что можно просто определить интерфейсы (допустите ошибку, контракты), и протестируйте их как регулярный код. Тогда можно предположить, что они будут работать через любой тип соединения, поддерживаемый WCF.
Возможность соединения может быть протестирована путем хостинга сервиса непосредственно в UT или на веб-сервере разработки.
Что касается инструментов, Вы существуют тонны платформ поблочного тестирования: NUnit, встроенные тесты в Visual Studio, xUnit, и т.д., и т.д.
можно загрузить" Visual Studio 2008 и Платформа.NET 3.5 Учебных Набора " и" Платформа.NET 3.5 Набора Обучения Улучшениям ", если я вспоминаю правильно были образцы для модульных тестов WCF
Если Вы хотите протестировать фактический рабочий сервис тогда , SoapUI свободен и имеет некоторые превосходные функции. Единственный протест состоит в том, что я только попробовал его Основным HTTP-связыванием.
Можно использовать Изолятор Typemock, чтобы сделать это. Вот несколько сообщений по вопросу о тестировании сторона клиента , и сторона сервера . Можно сделать это без любой зависимости, включая файл конфигурации.
Gil Zilberfeld Typemock
Я видел , Тест SOA раньше оценивал производительность и тесты масштабируемости на сервисах WCF, если это - то, что Вы ищете. У меня нет информации о стоимости или liscencing.
В нашем случае, мы получили сообщения от нашего UI для выполнения автоматизированного тестирования.
Typemock Isolator - это инструмент для модульного тестирования wcf-сервисов , среди прочего ...