【发布时间】:2017-09-27 11:59:44
【问题描述】:
我正在尝试使用以下原理测试一个Android应用程序
- 直接测试公共方法
- 测试私有方法是测试公共方法的副作用
- 独立测试静态方法
出于这个原因,我希望只依赖 JUnit 和 Mockito 进行测试,而不是冒着滥用 PowerMockito 等框架的风险
但是在这种情况下测试公共方法时,我陷入了困境
public class ClassA {
public void publicMethod(String id) {
// something
privateMethod(id);
}
public void privateMethod(String id) {
// something
StaticClass.staticMethod(id);
}
}
因为在这里我可以为publicMethod写一个测试,但是我面临的问题
- 如何防止 StaticClass.staticMethod 触发(模拟其行为/响应)?因为该方法可以在内部触及从 DB、HttpConnections 到 Context 等的任何内容(尤其是如果它来自我自己没有编写的类)
【问题讨论】:
标签: java android unit-testing static mockito