Android 测试 - 状态跨应用程序实例持久化引起的问题

标签 android testing

在运行 android 连接设备测试时,跨应用程序实例持续存在的状态(例如应用程序存储的权限和文件)会导致测试相互干扰。

例如,如果我想在拒绝运行时权限时为应用程序行为编写一个测试,而在允许运行时权限时为应用程序行为编写另一个测试,那么我必须非常小心以确保测试以正确的顺序运行。如果允许测试在拒绝测试之前运行,则拒绝测试将失败,因为权限设置已经被授予。

另一个例子,在一个购物应用程序中,应用程序可以将购物篮的内容存储在应用程序的内部文件存储中,以允许购物篮在应用程序终止和重新启动时继续存在。测试购物篮的行为变得非常困难,因为测试会相互干扰。

这个问题的解决方案是什么?

最佳答案

  1. 一定要在每个测试用例之后清理状态。依赖于运行顺序的测试被认为是一种不好的做法。在大多数情况下,您可以实现 teardown() 方法(如果您使用的是 JUnit4,则用 @AfterTest 注释)来进行清理。

  2. 在测试期间创建可注入(inject)到您的应用中的模拟状态对象。我对这种特殊方法还很陌生,所以我在这里没有太多建议。一些谷歌搜索应该可以帮助您入门。

关于Android 测试 - 状态跨应用程序实例持久化引起的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35189425/

相关文章:

wpf行为单元测试

python - 从 pytest 断言中解析出数据并转换为字符串

ruby - 如何自动运行 Ruby 测试?

testing - 带有 SWFUpload 的 Selenium

android - WebViewClient - onPageStarted() vs shouldOverrideUrlLoading()?

java - 在android中缩小图像并使其成为正方形

android - Appium+Android+webdriverio,如何点击列表元素

ruby-on-rails - 需要 user_id 时对 Rspec 功能的怀疑

android - 如何在 Android 中按顺序为 TextView 设置动画?

android - 使用 Android Studio 显示错误的 Web ListView 图像