(Отказ от ответственности - EasyMock Newb)Получения исключения из «хорошего макета» EasyMock с помощью отладчика прилагается
Согласно документации (и this post), если бы я хотел использовать EasyMock для создания объектов-заглушек, я должен использовать EasyMock.createNiceMock()
. «Хороший макет» на самом деле является заглушкой - то есть объектом, который не участвует в проверке, просто возвращает значения.
Однако следующий снипп не подходит для меня с IllegalStateException("missing behavior definition for the preceding method")
, на второй линии foo.translate()
.
Foo foo = EasyMock.createNiceMock(Foo.class);
EasyMock.replay(foo); // added this line
foo.translate("a", "b");
foo.translate("a", "b"); // only the second calls throws an exception
Может кто-нибудь объяснить это, или, вернее сказать мне, как использовать EasyMock для создания заглушек с нулевым многословие (O (number_of_exercised_mock_methods)).
Редактировать - Я заметил, что получаю эти ошибки почти всегда, когда отладчик подключен, но никогда, когда он не подключен. Любая идея, как это может быть связано?
Разве это не Nice Мок должен позволить мне не установить ожидания? Это означает, что если выполняются k-методы, мне нужно установить k ожиданий ... и в этом случае меня вообще не интересуют ожидания, я просто хочу возражать против работы. – ripper234
Я считаю, что касается только проверки макета, а не настройки. Вы пытались добавить возвращаемое значение и посмотреть, работает ли оно? Кроме того, если вас не волнует ожидание, и вам просто нужен фиктивный объект, зачем вообще настраивать ожидание, просто создайте красивый макет и поместите его в режим воспроизведения. –
«добавление возвращаемого значения ...» - это потребует установки ожиданий для всех методов, которые я пытаюсь избежать. Я не хочу вообще устанавливать ожидания. Я считаю, что вышеупомянутый вызов не срабатывает, даже если я вызываю replay() после первой строки (я попробую его в следующий раз, когда я на работе). – ripper234