我有一个带有静态方法的实用程序类
public class A {
public static boolean test1(){
// Do something
return true;
}
}
我正在尝试使用powermockit模拟test1并使用TestNG进行测试
@PrepareForTest(A.class)
public class UnitTest{
@Test
public void testTest1() {
PowerMockito.mockStatic(A.class);
when(A.test1()).thenReturn(false);
}
}
https://code.google.com/p/powermock/wiki/TestNG_usage我就是这么做的。
然而,在"when(a.t test1()). thenreturn (false);"中,它在Mockito期间调用实际的方法test1()。设置test1()方法时。因此,我认为设置不正确,它不能将类A识别为Mock
我在这里做错了什么吗?
My dependencies in pom.xml -
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<scope>test</scope>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-testng</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
在@Damien Beaufils的评论之后,我试图谷歌更多,最终在powermock问题中找到了一个帖子;谷歌小组描述了同样的问题。
解决方案是您的测试应该扩展PowerMockTestCase
(从testng powermock module
即org.powermock.modules.testng
导入)
更多信息- code.google.com/p/powermock/issues/detail?id=54#c9