PowerMock 和 Mockito 不适用于 TestNG
PowerMock and Mockito not working for TestNG
我有一个带有静态方法的实用程序class
public class A {
public static boolean test1(){
// Do something
return true;
}
}
我正在尝试使用 Powermockito 模拟 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.test1()).thenReturn(false);" 中,它会在 Mockito.when 设置 test1() 方法期间调用实际方法 test1()。因此,我认为设置不正确,无法将 Class A 识别为 Mock
我是不是做错了什么?
我在 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 的评论之后,我尝试了更多 google 并最终在 powermock 问题中找到了一个 post; google 组描述了同样的问题。
解决方案是您的测试应该扩展 PowerMockTestCase
(从 testng powermock module
导入,即 org.powermock.modules.testng
)
我有一个带有静态方法的实用程序class
public class A {
public static boolean test1(){
// Do something
return true;
}
}
我正在尝试使用 Powermockito 模拟 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.test1()).thenReturn(false);" 中,它会在 Mockito.when 设置 test1() 方法期间调用实际方法 test1()。因此,我认为设置不正确,无法将 Class A 识别为 Mock
我是不是做错了什么?
我在 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 的评论之后,我尝试了更多 google 并最终在 powermock 问题中找到了一个 post; google 组描述了同样的问题。
解决方案是您的测试应该扩展 PowerMockTestCase
(从 testng powermock module
导入,即 org.powermock.modules.testng
)