Как высмеивать метод void с PowerMockito?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как высмеивать метод void с PowerMockito?

Сообщение Anonymous »

Это дубликат этого вопроса. Есть куча похожих вопросов/ответов, но ни один из них не помог мне. Поскольку сотни разработчиков приняли некоторые ответы, я, вероятно, где -то ошибаюсь и понятия не имею, где моя проблема! Полем < /p>

Код: Выделить всё

final class NavigationBuilder {

@VisibleForTesting List mIntentList = new ArrayList(5);

@VisibleForTesting
void addNextScreenBasedOnBookingStatus(final Booking booking) {
final ChatMsgDbAsyncHelper helper = new ChatMsgDbAsyncHelper();

if (booking == null) {
helper.cleanAllMessages(mContext); // 

Это мой тестовый класс: < /p>

@RunWith(PowerMockRunner.class)
@PrepareForTest({ChatMsgDbAsyncHelper.class, SplashActivity.class})
public class NavigationBuilderTest {

private SplashActivity mActivity;
private NavigationBuilder mNavBuilder;

@Before
public void setUp() throws Exception {

mActivity = new SplashActivity();
ISplashView view = mock(ISplashView.class);
PassengerStorage passengerStorage = mock(PassengerStorage.class);

mNavBuilder = new NavigationBuilder(mActivity, view, passengerStorage);
}

@Test
public void addNextScreenBasedOnBookingStatus_whenBookingIsNull() throws Exception {
ChatMsgDbAsyncHelper spy = PowerMockito.spy(new ChatMsgDbAsyncHelper());
PowerMockito.doNothing().when(spy).cleanAllMessages(mActivity);

mNavBuilder.addNextScreenBasedOnBookingStatus(null);

assertTrue(mNavBuilder.mIntentList.isEmpty());
}
}
Тест не удастся, и причиной является nullpointerexception Поскольку тест запускает логику внутри helper.cleanallmessages (mcontext); . Мое ожидание сверху надлично нельзя выполнять. xxx.xxx.db.entitiety.chatmessagetable. (Chatmessagetable.java:23)


Подробнее здесь: https://stackoverflow.com/questions/422 ... wermockito
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»