Unit testing 如何通过使用withInstanceOf使用JMockit模拟私有方法?

Unit testing 如何通过使用withInstanceOf使用JMockit模拟私有方法?,unit-testing,junit,stub,jmockit,stubbing,Unit Testing,Junit,Stub,Jmockit,Stubbing,我需要知道如何在JMockit中使用withInstanceOf来模拟私有方法? 这是我需要测试的课程。 包mockingPrivateMethodWithInstanceOf public class Simple { private String iAmPrivate(String argString) { return "Private Method"; } public String publicCallsPrivate() {

我需要知道如何在JMockit中使用withInstanceOf来模拟私有方法? 这是我需要测试的课程。 包mockingPrivateMethodWithInstanceOf

public class Simple
{
    private String iAmPrivate(String argString) 
    {
        return "Private Method";
    }
    public String publicCallsPrivate() 
    {
        String string = "aString";
        return iAmPrivate(string);
    }
}
这是考试班

public class SimpleTest 
{    
    @Test 
    public void testPublicInvokesPrivate()
    {     
        final Simple simple =  new Simple();      
        new Expectations(simple)
        {
            {
                Deencapsulation.invoke(simple, "iAmPrivate", withInstanceOf(String.class));
                returns("Mocked method");
            }
        };
        assertEquals("Mocked method", simple.publicCallsPrivate());
    }   
}
执行测试类时,它会显示:

java.lang.IllegalArgumentException: Invalid null value passed as argument 0

带有Instanceof(object)的方法
始终返回
null
,调用(objectWithMethod,methodName,*nonNullArgs*)
不接受该值。您需要使用一些其他参数匹配器,它返回一个非空值。谢谢@Rogério。请您推荐任何其他参数匹配器来完成此任务。