我们能否使用Android Mock对Android应用程序的私有函数和字段进行单元测试?
如果可以,请解释如何做到?
我们能否使用Android Mock对Android应用程序的私有函数和字段进行单元测试?
如果可以,请解释如何做到?
测试私有方法,对我来说听起来有点不对。公共和受保护的方法是单元测试的候选对象。如果要测试私有方法,您可以将该方法公开或创建更多调用私有方法的公共方法的测试,并测试私有方法的核心功能。
你好,我发布了一篇关于这个主题的博客文章,并展示了如何通过理解java包和AndroidManifest“包”之间的区别来测试内部方法。
最终你会使用与Java传统方式相同的技巧:将要测试的方法设置为protected。
希望这有所帮助!
@UiThreadTest
public void testCompute() {
// given
boundBoxOfMainActivity = new BoundBoxOfMainActivity(getActivity());
// when
boundBoxOfMainActivity.boundBox_getButtonMain().performClick();
// then
assertEquals("42", boundBoxOfMainActivity.boundBox_getTextViewMain().getText());
}
测试框架中测试私有方法的最佳合适的法律方式是在方法上使用@VisibleForTesting注释,这样同一方法将像公共方法一样对测试框架可见。这里是VisibleForTesting注释的官方链接
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) private String field;
你可以在单元测试中使用公共和受保护的字段或方法。