如何测试 SingleLiveEvent<Void> 变量?

Ash*_*mar 5 testing android unit-testing

我有一个SingleLiveEvent<Void>变量。在收到 api 的回复后,我将其发布。我的回调被调用并显示一个弹出窗口。我的问题是我将如何编写测试用例进行检查,是否显示我的弹出窗口。

现场活动:

private SingleLiveEvent<Void> onAccountOverDrawn = new SingleLiveEvent<>();
Run Code Online (Sandbox Code Playgroud)

在成功响应我打电话:

onAccountOverDrawn.post();
Run Code Online (Sandbox Code Playgroud)

在我的片段中,我将其注册为

viewModel.getOnAccountOverDrawn().observe(this, aVoid -> onAccountOverDrawn());
Run Code Online (Sandbox Code Playgroud)

onAccountOverDrawn()我只是显示一个弹出窗口。

那么我将如何为这种情况编写测试用例呢?

当前测试用例:

@Test
public void updateApplicationStatus_AccountOverdrawn() {
    viewModel.updateApplicationStatus("AMOUNT_PENDING");

    assertNotNull(viewModel.getOnAccountOverDrawn()); //this line is of no use. Need to change this.
}
Run Code Online (Sandbox Code Playgroud)

Par*_*ngh -2

如果你想测试是否有弹窗,可以使用Robolectric。