2014-07-01 81 views
0

我有一个简单的类如何使用PowerMock验证两个静态方法调用?

public class A { 
    public static int calc(){ 
     return anotherCalc(); 

    } 

    public static int anotherCalc() { 
     return 10; 
    } 
} 

我需要验证是方法calc火灾的anotherCalc方法?我怎么用PowerMockito做到这一点?

UPD:

我有一个代码(我认为)做了正确的验证。但我不确定。

@Test 
    public void should_invoke_anotherCalc_method() throws Exception { 
     mockStatic(A.class); 
     when(A.calc()).thenCallRealMethod(); 
     A.calc(); 
     verifyStatic(times(1)); 
     A.anotherCalc(); 
    } 

也许任何人都可以说是好不好?

+2

您已经提出过这个问题。如果您需要添加详细信息,请进行编辑。 –

+0

是的,我更新了我的问题。 – Aaron

+1

我认为你是过于复杂的事情。我认为你应该检查答案是10,忽略关于调用另一个静态函数的实现细节。这将简化您的测试并为您在未来的设计更改中提供更多的自由 –

回答

0

一种简单的方法可以验证您的测试是否符合您的期望,只需更改您的CUT(测试中的代码)即可使测试失败。例如,在“calc()”方法中临时注释掉对“anotherCalc()”的调用并运行测试。如果它没有合适的信息,那么你知道你的测试正在做你期望的。删除评论标记并重新运行测试,并通过。

我不确定你为什么要在测试方法结束时调用“A.anotherCalc()”。这没有意义。

相关问题