EasyMock отсутствует поведение, даже если оно определено - PullRequest
0 голосов
/ 04 марта 2020

Независимо от того, что я делаю, я получаю следующую ошибку при попытке смоделировать метод

java .lang.IllegalStateException: отсутствует определение поведения для предыдущего вызова метода: ConfigurationSection.get ( "country-language") Использование: Ожидайте (a.foo ()). andXXX ()

Мой код для тестирования:

EasyMock.expect(section.getString("country-language")).andReturn("US");

LocaleManager.updateLocale(section, Collections.emptyList());
EasyMock.expectLastCall();

replayAll();

Assert.assertEquals("Test", TranslatedMessage.translate("test"));
verifyAll();

Ожидается andReturn для mocked класс, и метод stati c upateLocale вызывает метод, во-первых. Странно то, что этот тест работает нормально:

EasyMock.expect(section.getString("country-language")).andReturn("US");
replayAll();

Assert.assertEquals("US", section.getString("country-language"));
verifyAll();

Но вызов его из внешнего метода не работает.

1 Ответ

0 голосов
/ 04 марта 2020

Ваш издеватель говорит:

EasyMock.expect(section.getString("country-language"))

Ошибка говорит:

ConfigurationSection.get("country-language")

Вы не издеваетесь get("country-language"). Вы издеваетесь getString("country-language").

Не связано, но verify - кошмар обслуживания, и его, как правило, следует избегать. Это связывает тестовый код непосредственно с реализацией. Тесты должны быть сосредоточены на входах и выходах, если это вообще возможно.

...