Как я могу решить проблему соответствия аргументов Mockito? - PullRequest
0 голосов
/ 10 января 2020

Я тестирую dao в приложении android. Я использую mockito для модульного теста, после создания макета dao, когда я делаю when на dao.insert(CustomerClass) У меня есть ошибка ниже:

когда (java .lang.void) в mockito нельзя применить к (void).

@Dao
public interface WListDao {

    @Query("SELECT * from wlist_table ORDER BY title ASC")
    LiveData<List<WList>> getAllWList();

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    void insert(WList wList);

    @Delete
    void delete(WList wList);

}

//////////////////////

@Test
    public void addNewWListToDb(){
        WListDao dao = mock(WListDao.class);
        int count =0;
        when(dao.insert(any(WList.class))).thenAnswer(count++);
    }

1 Ответ

0 голосов
/ 10 января 2020

Синтаксис:

when(mockObject.someMethod(someParameter)).thenAnswer(someAnswer);

... недопустим для пустых методов. Вместо этого вы должны использовать этот синтаксис:

doAnswer(someAnswer).when(mockObject).someMethod(someParameter);

Обратите особое внимание на размещение в семье. Для синтаксиса doAnswer, вызов метода идет за пределами парня случая, когда.

См. Документацию Mockito здесь для получения дополнительной информации.

...