У меня есть группа типов уведомлений с условиями, которые я хочу проверить автоматически. Моя проблема заключается в том, что я знаю, что невозможно сформировать уведомление и проверить, выглядит ли сгенерированный пользовательский интерфейс в центре уведомлений.Тестирование уведомлений с модульными испытаниями
Из-за этого я попытался сломать его до вызова моего BroadcastReceiver
и перехватить тот момент, когда я запускаю уведомление. Поэтому в этот момент я могу проверить, содержит ли уведомление все настройки, которые я ожидаю. Я должен надеяться, что она будет оказана, как и ожидалось :-)
В моей build.gradle
я добавил этот блок:
testOptions {
unitTests.returnDefaultValues = true
}
Здесь начинается моя проблема я создаю Intent
и позвонить получателю:
@RunWith(MockitoJUnitRunner.class)
public class NotificationTest {
@Mock
Context mMockContext;
@Test
public void firstTest() {
NotificationManager manager = new NotificationManager();
manager.onReceive(mMockContext, new Intent(NotificationManager.MY_ACTION));
}
}
этот код падает с NullPointerException
, потому что у меня есть эта хорошая линия в моем BroadcastReceiver
:
switch(intent.getAction()) {
Я могу себе представить, что здесь происходит. Издевательский API не создает реального Intent
, и мои данные ушли. Как я могу протестировать сейчас свою реализацию уведомлений? Я думаю, что PendingIntent
s, которые я хочу протестировать, не будет работать простым эфиром.
Что теперь делать?
Отметьте также построитель уведомлений и загляните в него, и убедитесь, что вы установили правильные значения вместо того, чтобы смотреть на возвращаемый объект уведомления. проверить (notifBuilder) .setContentTitle ("AAA"); – Peter