如何模拟主要

时间:2013-02-05 08:18:07

标签: java testing main powermock

我的课程Under Test access Main(Main.doSomething) 我想模拟Main类,以避免使用所有的hasltle来设置整个过程 我怎么能这样做?

我正在和Mockito一起使用Powermock。

3 个答案:

答案 0 :(得分:3)

Main不是Java中类的保留字。这意味着你可以像任何其他类一样进行测试。这取决于doSomething是否为static和/或final

答案 1 :(得分:2)

前提是必须使用模拟静态方法是一种不好的做法(如果应该模拟它,你的方法不应该是静态的:如果类很难测试 - 重构类 - http://monkeyisland.pl/2008/01/14/mockito/)。

然而,这是你如何用powermock做的:

PowerMockito.mockStatic(Main.class);
PowerMockito.when(Main.doSomething()).thenReturn(something);

此处有文档:http://code.google.com/p/powermock/wiki/MockStatic

对于模拟静态成员,请执行以下操作:

Whitebox.setInternalState(Main.class, doSomething);

答案 2 :(得分:0)

更强大的模拟框架是JMockit。它提供增强的模拟和存根功能。

CheckOut:http://code.google.com/p/jmockit/