android - 在 Android 中运行检测测试时如何捕获活动中的错误?
问题描述
我有一个活动SomeActivity
。为了正常工作,它需要一个 id。这个 id 在 Intent 中传递。
SomeActivity
在其onCreate
-Method 中检索 Intent 中的 id。如果它为空,它会抛出一个错误(这会使 Activity 崩溃)。
我想使用仪器测试来测试这种行为。到目前为止我的代码:
SomeActivity.kt
class SomeActivity: AppCompatActivity() {
private var id: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_someActivity)
id = intent.extras?.getString("EXTRA_ID")
if (id == null) {
throw Error("id is null")
}
}
}
仪表化测试:SomeActivityInstrumentedTest.kt
@RunWith(AndroidJUnit4::class)
class SomeActivityInstrumentedTest{
@get: Rule
public var rule: ActivityScenarioRule<*> = ActivityScenarioRule(SomeActivity::class.java)
@Test
fun launchActivity() {
try {
val scenario = rule.scenario as ActivityScenario<SomeActivity>
scenario.moveToState(Lifecycle.State.CREATED)
scenario.moveToState(Lifecycle.State.STARTED)
scenario.moveToState(Lifecycle.State.RESUMED)
Assert.fail("should have failed earlier because id is not set")
} catch (e: Error) {
assertEquals(e.message, "id is null")
}
}
}
我从来没有发现错误,测试只是崩溃了。有什么方法可以捕捉到这个错误吗?
解决方案
推荐阅读
- generics - 如何定义一个使用 Mutex 的泛型函数
? - r - 根据 ID 组之间的小时差异
- python - 如何在 flask-restplus 中实现同时具有上传和有效负载的休息
- php - 设置文件大小时php下载限制zip损坏
- javascript - 为什么返回整个文档时出错
- json - 解决错误'Unexpected token < in JSON at position 0 at JSON.parse'
- dart - 双击按钮时如何在颤动中修复多个导航
- javascript - 为什么 NodeJS/Socket 调用这么多次
- visual-studio - 如何修复 Visual Studio 错误“无法加载项目文件。根级别的数据无效。”
- python - threading.Lock() 是否与 QThread() 兼容,QMutex() 是否与 python 线程兼容?