如何模拟main



我的类在测试中访问Main本身(Main.doSomething)我想模拟Main类,以避免用所有的hasltle设置整个过程我怎么能这么做?

我正在将Powermock与Mockito一起使用。

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

假设必须模拟静态方法是一种糟糕的做法(如果应该模拟,则方法不应该是静态的:如果类很难测试,则重构类——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);

一个更强大的Mocking Framework是JMockit。它提供了增强的嘲讽和存根功能。

签出:http://code.google.com/p/jmockit/

相关内容

  • 没有找到相关文章

最新更新