3
我有一个类,像这样:如何“拦截”测试方法调用?
class A {
public static void makeCall() {
URL url = "www.google.com";
InputStream result = url.openStream();
//Do more stuff
}
}
我想写一个单元测试它。我想要发生的事情是“拦截”openStream()
的呼叫,这样我就可以运行静态方法makeCall()
,并返回某种硬编码的JSON,而不是实际进行呼叫。我一直无法弄清楚如何嘲笑它,或者甚至有可能。
我寻找相同的行为角的$httpBackend
,任何意见或建议?
您应该从您实际尝试测试的逻辑(认为依赖注入)中分离出HTTP代码。 – SLaks
所以你想单独调用'makeHTTPCall(URL url)',然后只是模拟该方法返回JSON?这肯定能起作用 –
如果你确实必须嘲笑它,那么使用JMockit模拟库(声明'@Mocked URL url'模拟字段然后在'openStream()'中记录期望的期望)是微不足道的。 –