通过 JMockit 调用私有方法以测试结果
2022-09-02 19:51:56
我使用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,因为我认为我不想嘲笑这个类。只需测试调用私有方法的结果。