【发布时间】:2017-09-29 04:06:33
【问题描述】:
我正在尝试验证特定的附加功能是否已添加到 Intent,但我在 Android 单元测试中的 Intent 始终为 null。我有以下需要测试的类:
public class TestClass extends SomeNotifier {
private Intent mIntent = new Intent("testintent");
public TestClassConstructor(Context context) {
super(context);
}
@Override
public void notifyChange() {
mIntent.putExtra("Key one", 22);
mIntent.putExtra("Key two", 23);
mIntent.putExtra("Key three", 24);
getContext().sendBroadcast(mIntent);
}
}
测试如下(我也尝试过 mockIntent,但结果是一样的,extra 再次为空):
@RunWith(MockitoJUnitRunner.class)
public class TestClassTest {
@Mock
Context mMockContext;
@Test
public void sendBroadcastTest() {
ArgumentCaptor<Intent> argument = ArgumentCaptor.forClass(Intent.class);
TestClass testClassNotifier = new TestClass (mMockContext);
testClassNotifier.notifyChange();
verify(mMockContext).sendBroadcast(argument.capture());
Intent intent = argument.getValue();
//THE INTENT IS NULL
Assert.assertTrue(intent.hasExtra("Key one"));
}
}
您有什么建议我应该如何进行这个测试? 提前致谢
【问题讨论】:
标签: android unit-testing android-intent mockito extras