运行Android连接设备测试时,表明在应用程序实例中持续存在,例如应用程序存储的权限和文件,会导致测试相互干扰。
例如,如果我想在我拒绝运行时权限时编写应用程序行为的测试,并在允许运行时权限时为应用程序行为进行另一次测试,那么我必须非常小心,测试以正确的顺序运行。如果允许测试在拒绝测试之前运行,则拒绝测试将失败,因为权限设置已经被授予。
另一个例子,在购物应用程序中,应用程序可以将篮子的内容存储在应用程序内部文件存储中,以允许篮子在应用程序终止和重新启动后继续存在。然后测试购物篮的行为变得非常困难,因为测试会相互干扰。
这个问题的解决方案是什么?
答案 0 :(得分:1)
确保在每个测试用例后清理状态。依赖于订单运行的测试被认为是不好的做法。在丢失的情况下,您可以实现teardown()
方法(如果使用JUnit4,则使用@AfterTest
注释)进行清理。
在可以注入应用程序的测试期间创建模拟状态对象。我对这种特殊的方法还不熟悉,所以我在这里没有很多建议。一些谷歌搜索应该可以帮助你开始。
答案 1 :(得分:0)
模拟状态/为测试注入特殊状态对象是大多数问题的解决方案,但不是运行时权限案例