模拟类的所有静态void方法

时间:2014-04-25 11:48:48

标签: java unit-testing easymock powermock

我正在使用Mockito和PowerMock来模拟类的静态方法。我在下面提供了一个例子:

PowerMock.mockStatic(SampleClass.class);
SampleClass.doNothing();
EasyMock.expectLastCall().once();

此代码模拟doNothing()方法一次。但是,我在同一个类中有其他静态void方法。如果有任何尝试然后调用它们,则抛出异常。

我有两个问题:

  1. 我是否需要通过为每个方法复制第2行和第3行来模拟类中的所有静态方法?有没有其他更简单的方法来模拟一行或两行中的所有方法?
  2. 如果我的方法是一个静态void方法,并且我想在调用该方法时提供另一个实现(例如我的方法关闭PreparedStatement,ResultSet和Connection,我想通过只关闭PreparedStatement和ResultSet来模拟它),那么,是吗?可能的?
  3. 提前全部谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 如果您正在调用其他静态方法,那么您还必须为这些方法设置期望值(在您的示例中为步骤2和3)。

  2. 您能否提供代码示例。我不清楚你想要做什么。