【发布时间】:2017-07-27 14:39:07
【问题描述】:
我想在片段中测试一个方法,但在这个方法中我调用了一个 Toast:
Toast.makeText(getActivity(), getString(R.string.signs), Toast.LENGTH_SHORT).show();
现在我想用 JUnit 和 Powermockito 测试该方法。为此,我想忽略吐司。我是这样尝试的:模拟 Toast 并忽略 toast.show()
Toast toastMock = mock(Toast.class);
doReturn(toastMock).when(Toast.makeText(any(Activity.class), anyString(), Toast.LENGTH_SHORT));
doNothing().when(toastMock).show();
但是我总是得到一个 RuntimeException,因为我调用 Toast 时没有创建一个新的 toast 对象。如何绕过这个问题?
【问题讨论】:
-
你能添加完整的测试用例吗?也使用 PowerMockito 设置
-
您正在尝试模拟静态方法,您要么必须将静态调用包装到可以模拟的非静态类中,要么模拟您可以找到的静态方法在这里帮助stackoverflow.com/questions/10583202/…
标签: java android unit-testing mockito