2015-07-19 42 views
2

工作,我有一个实用工具类与静态方法PowerMock和的Mockito不是TestNG的

public class A { 
    public static boolean test1(){ 
      // Do something 
      return true; 
    }  
} 

我试图嘲弄test1的使用Powermockito并用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> 
+0

也许PowerMockTestCase继承缺失? @PrepareForTest(A.class) public class UnitTest extends PowerMockTestCase { ... } –

+0

@DamienBeaufils是的。解决它。更多信息 - https://code.google.com/p/powermock/issues/detail?id=54#c9。谢谢你指导我。我尝试了更多谷歌,并谈到这个问题,它也在https://code.google.com/p/powermock/wiki/TestNG_usage的评论部分。 – Aks

回答

1

从达明博菲斯的评论后,我想更多的谷歌终于找到了powermock问题谷歌组在后描述了同样的问题。

的解决方案是,你测试应该扩展PowerMockTestCase

更多信息(这是从TestNG的powermock模块即org.powermock.modules.testng进口) - code.google.com/p/powermock/issues/详细信息?id = 54#c9

相关问题