我有这门课(简体)
public class ItemParametersParser
{ ...
public static void writeToFile(Item i, Context c, Builder b) throws HandlerException
}
我试图模拟writeToFile方法,但没有成功
@RunWith(PowerMockRunner.class)
@PrepareForTest({ItemParametersParser.class})
public class MyTest {
@Test
public void test() throws ... {
mockStatic(ItemParametersParser.class);
doNothing().when(ItemParametersParser.class);
ItemParametersParser.writeXMLToFile(null,null,null);
...
}
这个结果随着去到原来的方法,我也尝试了模拟具体的方法使用:
doNothing().when(ItemParametersParser.writeXMLToFile(any(Item.class),any(Context.class),any(Builder.class)));
编辑:修复导入问题后,正如@pvpkiran所说,现在起作用了!我可以用DoAnswer来验证。
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
System.out.println("called with arguments: " + Arrays.toString(args));
return null;
}
}).when(ItemParametersParser.class, "writeToFile", any(Item.class), any(Context.class),any(Builder.class));
这应该行得通
@Test
public void test() throws .... {
mockStatic(ItemParametersParser.class);
doNothing().when(ItemParametersParser.class, "writeToFile", any(Item.class), any(Context.class),any(Builder.class));
}
第一个参数是被测试类的类实例,第二个参数是要模拟的方法名,后面是该方法的参数。
确保您导入了org.powermock.api.mockito.powermockito.doNothing
而不是org.mockito.mockito.doNothing
我试图用PowerMock在Mockito上模拟一个静态void方法,但它并不是那么好用。 我的示例代码: EvilBrother.java 我的问题是,嵌套类按照预期的方式使用@PrepareForTest和PowerMockito.MockStatic组合进行了模拟,但是如果类在自己的类文件中,这些语句就不起作用了。 如何修复这个测试? 与 尽管执行了assert.fail,但可以通过Powe
我正在尝试使用JUnit、Mockito和PowerMock验证对的调用。 下面是我的测试用例: 下面是测试中的代码: 非常有趣的是,这段代码失败时出现:
我正在尝试使用EasyMock+PowerMock模拟静态方法。如果我没有模拟静态方法,那么我会得到异常java.lang.ExceptioninInitializerError,但它有一个不同的堆栈跟踪,这完全是由于我的代码文件造成的,错误是显而易见的。但是,如果我使用EasyMock+PowerMock模拟静态方法,则行PowerMock.MockStaticNice(ClassName.Cl
我遇到了Mockito的一个bug,但我想知道是否有其他人可以解释为什么这个测试不起作用。 基本上,我有两个对象,如下所示: 第一个对象是通过注释和之前的方法模拟的: 在方法中模拟第二个对象: 当包含对此方法的直接调用以设置并获取第二个对象的模拟时,它将失败: 但是,当同一方法返回的模拟被分配给一个局部变量(在中使用)时,它可以工作: 我们是否做错了什么,或者这确实是Mockito中的一个缺陷/限
问题内容: 我使用PowerMock 1.4.7和JUnit 4.8.2 我只需要模拟一些静态方法,而我想让其他方法(来自同一类)只是返回原始值。当我嘲笑并且不调用所有静态方法时,它们会返回其默认值- 例如,返回Object时为null或返回布尔值时为false …等等。因此,我尝试在每个静态方法上显式使用它 来返回默认实现(意味着没有模拟/没有伪造),但是我不知道如何在每个可能的参数变体上调用它
我编写了以下代码来模拟一个名为ValidatorUtil的类,该类在测试中用于验证字符串,所以我编写了ValidatorUtil应该总是返回true,但它总是返回false,最终实际上调用了ValidatorUtil的isValid方法,该方法将结果返回为false。我已经尝试过所有的匹配器,比如mockito.any()和mockito.any(configurator.class)但是没有成功