PowerMock和Mockito不适用于TestNG

时间:2015-07-19 15:52:00

标签: mockito static-methods powermock

我有一个带有静态方法的实用程序类

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);”它在test1()方法的Mockito.when设置期间调用实际方法test1()。因此,我认为设置没有在它无法将A类识别为模拟

的情况下完成

我在这里做错了吗?

我在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>

1 个答案:

答案 0 :(得分:1)

在Damien Beaufils的评论之后,我试图谷歌更多,最后在powermock问题谷歌小组描述同样的问题发现了一个帖子。

解决方案是你测试应该扩展PowerMockTestCase(从testng powermock模块导入,即org.powermock.modules.testng)

更多信息 - code.google.com/p/powermock/issues/detail?id=54#c9