我正在使用JMockit 1.1,我想要做的就是调用一个私有方法并测试其返回值。但是,我不太明白如何从JMockit De-Encapsulation示例中实现这一点。
我试图测试的方法是这个类中的私有方法:
public class StringToTransaction {
private List<String> parseTransactionString(final String input) {
// .. processing
return resultList;
}
}
以下是我的测试代码。
@Test
public void testParsingForCommas() {
final StringToTransaction tested = new StringToTransaction();
final List<String> expected = new ArrayList<String>();
// Add expected strings list here..
new Expectations() {
{
invoke(tested, "parseTransactionString", "blah blah");
returns(expected);
}
};
}
我收到的错误信息是:
java.lang.IllegalStateException: 在此处缺少对模拟类型的调用;请确保这种调用仅出现在适当的模拟字段或参数的声明之后
也许我误解了整个API,因为我不认为我想要模拟这个类..只是测试调用私有方法的结果。
Deencapsulation.invoke
,感谢@JeffOlson以及在https://groups.google.com/d/msg/jmockit-users/oEgjW0DfmgU/3pEE1mjt1ncJ中的Rogerio。 - Robert Mark Braminvoke()
(可能通过静态导入),所以我认为我应该保持原样。我会更新我的答案,以便未来任何其他人阅读时更加清晰明了。 - Jeff Olson