单元测试roboletric android中的私有方法

时间:2017-04-21 04:30:24

标签: android robolectric

单元测试私有方法可能不是一种好的做法,但产品中很少有方法在私有方法中具有复杂的登录。

我们可以以某种方式反映或调用android中的roboletric中的私有方法或任何类似于roboletric的库,这有助于测试私有方法吗?

非常感谢任何提示或帮助

1 个答案:

答案 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框架将帮助您构建具有更强可测试性的强封装的较小类。那么你就不会有首先要使用私有方法进行测试的问题。

this question

的答案中,有一些工具可以帮助测试私人方法