gpt4 book ai didi

java - 没有注册仪器,运行单元测试时出错

转载 作者:行者123 更新时间:2023-12-01 16:56:31 24 4
gpt4 key购买 nike

我在测试单元中遇到了一个奇怪的错误。

public class GameActivityUnitTest {
private static ActivityScenario<GameActivity> scenario;
@BeforeClass
public static void createLogHistory() {
scenario = ActivityScenario.launch(GameActivity.class);
// WHEN
scenario.moveToState(Lifecycle.State.CREATED);
}
@Test
public void testPointsChange() {
scenario.onActivity(activity -> {
activity.increaseCoin();
activity.increaseCoin();
activity.decreaseCoin();
assertTrue(activity.coins == 1);;
});
}
@Test
public void testGamePauseStatus() {
scenario.onActivity(activity -> {
activity.view.getTimerController().pause();
assertTrue(activity.view.getPauseStatus());
activity.view.getTimerController().resume();
assertTrue(activity.coins == 1);;
assertFalse(activity.view.getPauseStatus());
});
}
}

我认为标记为 @BeforeClass 的函数由以下所有测试单元共享。

我显示的内容给出了“未注册仪器”错误。

但是,如果我删除 @BeforeClass 方法但在每个测试单元中重复代码。

错误消失。

为什么会发生这种情况?

而且我不想每次都重复代码,我该怎么办?

谢谢!

最佳答案

如果您想在每个测试运行之前执行一些代码,您应该使用@Before注释(而不是@BeforeClass)。

这意味着您可以轻松地在 createLogHistory() 中启动正在测试的 Activity (现在应该不是静态的)。

关于java - 没有注册仪器,运行单元测试时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61580940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com