Igo*_*daš 6 android unit-testing gradle
我的单元测试失败,android.util.Log中的方法d没有被模拟但仅在我运行testDebug时.如果运行testRelease一切正常,他们正确通过.有谁知道为什么会这样?从控制台和Android工作室运行gradle时也会发生同样的事情.
这是我如何解决这个问题的解释,以供将来参考。测试在调试中工作但在发布中不工作的问题是由于 Log.d(以及来自 android 框架的朋友)没有被正确模拟。当构建为发布版本时它起作用的原因是我们的日志记录是基于构建配置中的此属性的条件。基本上我们有 if (BuildConfig.type!="Release") Log.d (...) 并且由于编译器由于最终值而删除了此块,因此在测试发布时不会调用它。为了模拟静态方法 Log.d,我使用了 PowerMock。模拟很容易,但设置 Power Mock 确实很麻烦,因此可能有更好的方法来做到这一点。
归档时间: |
|
查看次数: |
2086 次 |
最近记录: |