Unit testing 如何通过使用withInstanceOf使用JMockit模拟私有方法?
我需要知道如何在JMockit中使用withInstanceOf来模拟私有方法? 这是我需要测试的课程。 包mockingPrivateMethodWithInstanceOfUnit 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() {
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。请您推荐任何其他参数匹配器来完成此任务。