首页 > 解决方案 > 在模拟器与物理设备中运行仪器测试

问题描述

我有一个测试,它通过一个 API 调用调用一个函数,该函数需要一个响应,这个函数有一个 successHandler 和一个 failureHandler。通常,我希望测试在完成之前等待 successHandler 或 failureHandler,但情况并非总是如此。

当我在模拟器(Pixel 4a API 30)上运行测试时:调用该函数,并按预期等待 successHandler 或 failureHandler 的响应,然后调用的相应处理程序使测试通过或失败。

当我在物理设备(Samsung Galaxy S7)上运行测试时:该函数被调用,但测试不等待成功或失败处理程序,因此测试成功,因为决定测试是否失败或通过的处理程序不是及时访问。

如果我让线程休眠 5 秒,则访问处理程序,所以这是异步等待的问题。只是不确定为什么它在模拟器上等待处理程序,但在物理设备上却没有。

请记住,测试是在 @UiThreadTest 上运行的

标签: androidunit-testingkotlinasynchronoustesting

解决方案


推荐阅读