单元测试私有方法可能不是一种好的做法,但产品中很少有方法在私有方法中具有复杂的登录。
我们可以以某种方式反映或调用android中的roboletric中的私有方法或任何类似于roboletric的库,这有助于测试私有方法吗?
非常感谢任何提示或帮助
答案 0 :(得分:2)
单元测试私有方法可能不是一种好的做法,但产品中很少有方法在私有方法中有复杂的登录。
最佳解决方案是从复杂逻辑中提取类。然后你提取的课程可以单独测试。
我们可以在Android中以某种方式反映或调用Roboletric中的私有方法吗?
如果必须使用反射来测试私有方法,那么Robolectric中的过程与使用反射的标准JUnit测试中的过程完全相同:
Method method = targetClass.getDeclaredMethod(methodName, argClasses);
method.setAccessible(true);
return method.invoke(targetObject, argObjects);
OR任何类似于Roboletric的库有助于测试私有方法吗?
不是学习有助于破坏良好软件工程原理的库,更好的想法可能是学习像Dagger 2这样的依赖注入框架。这样的DI框架将帮助您构建具有更强可测试性的强封装的较小类。那么你就不会有首先要使用私有方法进行测试的问题。
的答案中,有一些工具可以帮助测试私人方法