![](/img/trans.png)
[英]How can I intercept a method call to a library class in Java or Android?
[英]How can I “intercept” a method call for a test?
我有一个这样的课:
class A {
public static void makeCall() {
URL url = "www.google.com";
InputStream result = url.openStream();
//Do more stuff
}
}
我想为它编写一个单元测试。 我想要发生的是“拦截”对openStream()
的调用,以便我可以运行静态方法makeCall()
并返回某种硬编码的JSON,而不是实际进行调用。 我无法弄清楚如何模拟它,或者甚至可能。
我正在寻找与Angular的$httpBackend
相同的行为,任何想法或建议?
您不应该需要模拟方法成员变量。 为了更好的设计,使url成为方法中的参数。
public static void makeCall(URL url){
然后在你的测试传递模拟。
这也允许将来更灵活和可能的代码重用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.