是否可以通过easyMock测试静态函数

时间:2017-02-28 11:54:08

标签: java testing junit easymock

我想通过使用EasyMock的andReturn方法检查它是否返回相同的值。不幸的是,我遇到了.split('/').shift():前面的方法调用缺少行为定义:“当我使用EasyMock时。我想当我尝试expect方法时,不可能通过EasyMock进行测试。你会更好地理解问题。代码。

此致 阿尔珀

"java.lang.IllegalStateException

错误消息:

Menu menu = EasyMock.createMock(Menu.class)
menu.setName("name");
        EasyMock.expect(XmlParseUtility.createLinesToParse(menu).toString()).andReturn(angularLines.toString());

2 个答案:

答案 0 :(得分:0)

我不确定你想做什么。要评论其中一条评论,EasyMock并不严格。这是你想要的任何东西。

如果您想要Mockito样式模拟,您将使用niceMock

然后,关于你的代码。我觉得你想录制一个setName的电话。然后想确保XmlParseUtility.createLinesToParse按预期工作。如果我是对的,你想要这个代码:

Menu menu = EasyMock.createNiceMock(Menu.class); // unrecorded methods will return null
menu.setName("name"); // recording a call to setName
replay(menu); // done with recording, going in replaying
assertEquals(angularLines.toString(), XmlParseUtility.createLinesToParse(menu).toString());
verify(menu); // if you want to make sure setName was called

答案 1 :(得分:0)

如果您实际上是在尝试存根静态var copy = template.clone(); copy.getObjectByName('head_01').visible = false; copy.getObjectByName('head_02').visible = true; scene.add(copy); 方法调用,那么PowerMock库就是您要找的。

XmlParseUtility.createLinesToParse()

PowerMock还要求使用其运行程序运行测试,并且必须“准备”包含静态方法的类。有关详细信息,请查看他们的documentation