Как насмешка внешних сервисов может улучшить модульные тесты?

project-> properties-> maven: - снимите флажок разрешенной зависимости.

enter image description here

6
задан Dave Nolan 17 February 2009 в 23:11
поделиться

3 ответа

Позвольте мне отослать Вас к своим двум ответам в другом вопросе о поблочном тестировании только, чтобы не повторять меня, сначала.

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

Если бы я был в той ситуации, и в зависимости от реального сервиса, то я испытал бы желание записать модульный тест или дразнить за внешний сервис также. Тот путь, если Вы наблюдаете отказ в реальной операции, можно (1) запустить тест против кода с помощью насмешки для внешнего интерфейса и (2) протестировать внешний сервис против ожиданий.

Точка, тем не менее, должна иметь что-то, для которого у Вас есть реальная уверенность и которым Вы полностью управляете.

3
ответ дан 17 December 2019 в 20:35
поделиться

Ваша насмешка, предназначенная для модульных тестов, не должна точно представлять внешний сервис. Необходимо выбрать предопределенные множества входных и выходных значений для дразнившего внешнего сервиса. Они могут или не могут быть тем, что внешний сервис на самом деле возвратил бы (но они должны быть "довольно" реальными). Цель Ваших модульных тестов состоит в том, чтобы перепроверить это, Ваши объекты ведут себя правильно, учитывая этот набор вводов и выводов, для определенного значения "правильно".

0
ответ дан 17 December 2019 в 20:35
поделиться

Удостоверьтесь, что что-либо, от чего зависит Ваш класс, имеет интерфейс (в противоположность просто конкретной реализации), и затем можно использовать JMock. Это упростит Ваше тестирование очень. Можно сделать, вещам нравится, говорят этому ожидать вызов метода X, возвращать конкретное значение или выдавать исключение. Это - действительно средство экономии времени.

-1
ответ дан 17 December 2019 в 20:35
поделиться
Другие вопросы по тегам:

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