EasyMock 缺少行为,即使它已定义
EasyMock missing behavior even though it's defined
无论我做什么,在尝试模拟方法时都会收到以下错误
java.lang.IllegalStateException: missing behavior definition for the preceding method call:
ConfigurationSection.get("country-language")
Usage is: expect(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();
为模拟 class 调用 expect andReturn,静态 upateLocale 方法首先调用该方法。
奇怪的是这个测试工作正常:
EasyMock.expect(section.getString("country-language")).andReturn("US");
replayAll();
Assert.assertEquals("US", section.getString("country-language"));
verifyAll();
但是从外部方法调用它不起作用。
你的模拟说:
EasyMock.expect(section.getString("country-language"))
错误说:
ConfigurationSection.get("country-language")
你不是在嘲笑get("country-language")
。你在嘲笑 getString("country-language")
.
无关,但 verify
是维护的噩梦,通常应避免。这将测试代码直接与实现联系起来。如果可能的话,测试应该关注输入和输出。
无论我做什么,在尝试模拟方法时都会收到以下错误
java.lang.IllegalStateException: missing behavior definition for the preceding method call: ConfigurationSection.get("country-language") Usage is: expect(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();
为模拟 class 调用 expect andReturn,静态 upateLocale 方法首先调用该方法。 奇怪的是这个测试工作正常:
EasyMock.expect(section.getString("country-language")).andReturn("US");
replayAll();
Assert.assertEquals("US", section.getString("country-language"));
verifyAll();
但是从外部方法调用它不起作用。
你的模拟说:
EasyMock.expect(section.getString("country-language"))
错误说:
ConfigurationSection.get("country-language")
你不是在嘲笑get("country-language")
。你在嘲笑 getString("country-language")
.
无关,但 verify
是维护的噩梦,通常应避免。这将测试代码直接与实现联系起来。如果可能的话,测试应该关注输入和输出。