如何验证哪些参数被传递给java中的静态方法



作为Junit测试的一部分,我想验证是否使用正确的参数调用外部类的静态方法。

假设我有以下几门课要考。

class A {
    public static void someMethod(String param){
          some.thirdpartyClass.someStaticMethod(param);
    }      
}

现在,我想作为someMethod测试的一部分进行测试,我用参数param调用了someStaticMethod

做这件事最简单的方法是什么?我试着通过力量模拟,但找不到方法。

最简单的方法是使用powermock

看看这里http://code.google.com/p/powermock/source/browse/trunk/modules/module-test/easymock/junit4-test/src/test/java/samples/junit4/singleton/MockStaticTest.java

使用PowerMock并不困难,但使用JMockit有一个更简单的解决方案:

public class ATest
{
    @Test
    public void testSomeMethodInIsolation(@Mocked ThirdPartyClass tpc)
    {
        final String param = "testing";
        new A().someMethod(param);
        new Verifications() {{ ThirdPartyClass.someStaticMethod(param); }};
    }
}

相关内容

  • 没有找到相关文章