android - 无法在 Parameterized.class junit 测试中未调用 Looper.prepare() 的线程内创建处理程序
问题描述
我想创建一个测试用例,并多次使用相同的测试用例,但数据不同,如下所示。
@RunWith(Parameterized.class)
public class ExampleInstrumentedTest extends TestCase {
private MainActivity ma = new MainActivity();
@Parameterized.Parameter(0)
public float expectedResult;
@Parameterized.Parameter(1)
public float firstNum;
@Parameterized.Parameter(2)
public float secondNum;
@Parameterized.Parameters(name = "{index}: testAdd {0} = ({1}+{2})")
public static Collection<Object[]> testData(){
Object[][] data = new Object[][]{ {6,2,4}, {7,4,3}};
return Arrays.asList(data);
}
@Test
public void testAdd() throws InterruptedException {
float result = firstNum + secondNum;
Assert.assertEquals(expectedResult, result, .1);
}
}
这就是最终结果。
测试确实生成了测试用例,但假设测试用例通过并且没有失败。错误是
java.lang.RuntimeException:无法在未调用 Looper.prepare() 的线程内创建处理程序
我尝试了所有可用的解决方案,但它仍然显示相同的消息。
解决方案
推荐阅读
- python - 有没有办法使用python打开网站并粘贴?
- chapel - i == j == k 的意外结果?
- javascript - 如何从父项目中获取文件?
- laravel - 使用 laravel 和 livewire 让过滤器工作
- python - 无法使用 pip2.7 安装 simpleHTTPServer 等软件包
- amazon-web-services - Elasticsearch 6.3 (AWS) 快照恢复进度错误:“/_recovery is not allowed”
- sas - 如何输出proclogistic的优势比标准误差?
- python - 我如何循环并找到每对的hausdorff距离?
- arduino - ESP32 上的 GPS 模块未提供有效日志
- react-native - 当我加载屏幕时,react native 中的 fetch API 调用不起作用