joh*_*ohn 7 java junit jmockit
下面是我DataTap
班上的私有方法,我正在尝试使用jmockit对这个私有方法进行junit测试 -
private void parseResponse(String response) throws Exception {
if (response != null) {
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
所以下面是我写的junit测试但是对于null情况,它会在junit测试本身上以某种方式抛出NPE.
DataTap tap = new DataTap();
Deencapsulation.invoke(tap, "parseResponse", "hello");
// this line throws NPE
Deencapsulation.invoke(tap, "parseResponse", null);
Run Code Online (Sandbox Code Playgroud)
所以我的问题是 - 作为junit测试的一部分,我有什么方法可以使用JMOCKIT 传递null string
给parseResponse
方法吗?
这就是我在这条线上看到的 -
类型为null的参数应显式转换为Object [],以便从Deencapsulation类型调用varargs方法invoke(Object,String,Object ...).也可以将其转换为Object以进行varargs调用
Mak*_*oto 15
快速浏览文档表明,您尝试使用该签名进行的操作是不可能的:
...如果需要传递null值,则必须传递参数类型的Class对象
如果是这种情况,那么传入Class
对象以及实例.
Deencapsulation.invoke(tap, "parseResponse", String.class);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5397 次 |
最近记录: |