我正在学习模拟和功率模拟,如果这个问题很愚蠢,请原谅我。
我正在尝试模拟以下行以引发一些异常:
new ResultJSONWrapper.Success(null).toJSON();
我认为我需要一些如何模拟成功类的构造函数以引发JSONException的方法,但是找不到任何可靠的解决方案。 可以给我一些提示吗?
public abstract class ResultJSONWrapper {
private String json;
public String toJSON() {
return json;
}
static public class Success extends ResultJSONWrapper {
public Success(Object result) throws JSONException {
JSONWriter writer = new JSONStringer();
writer.object();
writer.key("status");
writer.value(HTTP_OK);
writer.key("data");
writer.value(result);
writer.endObject();
super.json = writer.toString();
}
}
}
答案 0 :(得分:0)
Mockito不允许您模拟构造函数,而Power Mockito是您最后要使用的东西。
由于ResultJSONWrapper
是abstract
类,因此您可以创建自己的TestResultJSONWrapper
实现,该实现将在创建过程中抛出JSONException
,并将其传递给您的代码部分正在测试
public class TestSuccessMock extends ResultJSONWrapper {
public TestSuccessMock (Object result) throws JSONException {
throw new JSONException();
}
}
所以基本上我的建议是不要为此目的使用Mockito