我要检查它是否使用了EasyMock的andReturn方法具有相同的值返回测试静态函数。不幸的是,我遇到与"java.lang.IllegalStateException
:失踪行为定义为前面的方法调用:”当我使用了EasyMock我想这是不可能通过EasyMock的测试,当我试图想到方法,你会明白问题的代码更好是否有可能通过EasyMock的
问候 的Alper
Menu menu = EasyMock.createMock(Menu.class)
menu.setName("name");
EasyMock.expect(XmlParseUtility.createLinesToParse(menu).toString()).andReturn(angularLines.toString());
错误消息:
java.lang.IllegalStateException: missing behavior definition for the preceding method call:
Menu.getName()
Usage is: expect(a.foo()).andXXX()
这不是错误是什么。 EasyMock遇到了一个你没有告诉它的方法调用。由于它是如何工作的,它会在发生这种情况时产生异常。有两种解决方案:1.告诉图书馆它应该期望被调用的每种方法。 2.切换到允许意外方法调用的模拟库。 –
如果你的意思是 “EasyMock.expect(menu.getName())等于(” 名称 “);”,我已经做到了。切换到嘲笑图书馆普罗霍罗夫,你是什么意思?你可以给我一个例子吗 ? – user2307786
我的意思是不同的嘲笑库是全部。例如,Mockito或Spock。 EasyMock是一个“严格”的嘲笑库,它会让你提供所有可能的方法被模拟调用。这可能会用你无意测试的有效无意义的东西来稀释你的测试(尽管实际效果会逐个改变,有时候你想要这样严格)。 Mockito是一个“宽松”的嘲讽库,它会忽略意想不到的方法调用。 –