В некоторых ответах я видел некоторые сведения о пропуске, поэтому я решил добавить новый.
Сборники Java. Arrays.asList принимает var-arg типа T (T ...)
. Если вы передадите примитивный массив (int array), метод asList выведет и сгенерирует List<int[]>
, который является списком из одного элемента (один элемент является примитивным массивом). если вы перетасовываете этот список элементов, он ничего не изменит.
Итак, сначала вам нужно преобразовать примитивный массив в массив объектов Wrapper. для этого вы можете использовать метод ArrayUtils.toObject
из apache.commons.lang. затем передать сгенерированный массив в список и окончательно перетасовать его.
int[] intArr = {1,2,3};
List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(array));
Collections.shuffle(integerList);
//now! elements in integerList are shuffled!
SoapUI является другим инструментом тестирования веб-сервиса. Я настоятельно рекомендую это.
Вы не собираетесь находить любой лучший инструмент для создания автоматизированных тестов сервисов WCF, чем использовать Вашу любимую платформу модульного теста и тесты записи. Тестовый клиент, ни soapUI создадут тест, который может работать в Непрерывном сценарии Интеграции.
Если необходимо протестировать клиентскую логику: можно использовать платформу насмешки/Изоляции, чтобы заблокировать фактические вызовы к серверу и использовать платформу поблочного тестирования для записи надлежащих Модульных тестов.
Тестирование логики сервера может быть еще легче - все, в чем Вы нуждаетесь, должен протестировать вызов к бизнес-логике, и тупик звонит во внешние компоненты (т.е. база данных).
нет никакого фактического преимущества поблочного тестирования полного взаимодействия между клиентом к серверу, потому что Вы знаете, что работы WCF вместо этого добавляют интеграционное тестирование всей среды на выделенном сервере / клиенты.
Хорошо я заканчиваю тем, что писал модульные тесты в тесте MS. Перед каждым тестом сервис размещен опытной сборкой и разорван вниз впоследствии. Уверенный это не поблочное тестирование, таким образом, пуристы будут дрожать, но это действительно означает, что я могу запускать тесты так часто, как мне нравится.
Я не означал подразумевать, что soapUI не работает на сервис WCF, подвергнутый с помощью basicHttpBinding. Используя basicHttpBinding работал бы, потому что сервис будет функционировать как legaxy ASMX веб-сервис. Однако, если нужно переключить привязку (или использовать несколько привязки) к netTcpBinding, например, я не думаю, что все еще было бы возможно вызвать методы того обслуживания с помощью soapUI. Сценарий, который я описываю, довольно распространен, где Вам подвергли сервис WCF в сети с помощью basicHttpBinding конечную точку для максимальной совместимости и другую конечную точку, поскольку netTcpBinding (для макс. производительности) использовал только внутренне.
Есть новый тестовый клиент под названием SOA Cleaner, я рекомендую вам его попробовать. Он поддерживает WCF. можно найти по адресу: http://xyrow.com .