Mockito Verify генерирует «ошибку нулевых взаимодействий» в фиктивной функции внутри класса - PullRequest
0 голосов
/ 09 апреля 2019

Я издеваюсь над объектом Дао для своего хранилища.Использование verify (mockedDao) работает только вне класса Repository.Это не будет работать внутри.Однако Mockito. when прекрасно работает внутри класса Repository.

Сейчас я просто пытаюсь заставить его записать один успешный вызов.Но это не работает.Используя операторы журнала, я смог убедиться, что макетный метод действительно вызывается внутри класса Repository.Это просто не в состоянии показать это для оператора verify ().Я должен также упомянуть, что оператор verify () отлично работает, когда я вызываю метод вне класса Repository.Он просто отказывается работать внутри.

@RunWith(MockitoJUnitRunner::class)
class RepositoryTest {

@InjectMocks
private lateinit var repos: Repository


private lateinit var db: AppDatabase

@Mock
lateinit var mockedDao : MomentDao


@Before
fun setTheDatabase() {
    val context = ApplicationProvider.getApplicationContext<Context>()

    db = Room.inMemoryDatabaseBuilder(
        context, AppDatabase::class.java).build()
    momentDao = db.momentDao()

    momentDao.insertMoment(dataBaseTestMoment)

    setMomentsForBoundsSearch()

    //repos = Repository(mockedDao)

    mappedMoments.postValue(mutableListOf<Moment>())

    repos.ReposiTest()
    repos.setMappedMoments(mappedMoments)

}



@Test
fun hardDaoTest() {

    Mockito.`when`(mockedDao.findMomentsByBound(ArgumentMatchers.anyDouble(), ArgumentMatchers.anyDouble(),
        ArgumentMatchers.anyDouble(), ArgumentMatchers.anyDouble())).thenReturn(momentList)


    repos.queryMapMoments(LatLngBounds(LatLng(20.toDouble(), -40.toDouble()), LatLng(25.toDouble(), -30.toDouble())), zoom)

    Mockito.verify(mockedDao, times(1)).findMomentsByBound(
        ArgumentMatchers.anyDouble(), ArgumentMatchers.anyDouble(),
        ArgumentMatchers.anyDouble(), ArgumentMatchers.anyDouble())

}

Wanted but not invoked:
mockedDao.findMomentsByBound(
<any double>,
<any double>,
<any double>,
<any double>
);
-> at 

com.example.barrechat108.RepositoryTests.hardDaoTest(RepositoryTests.kt:145)

Actually, there were zero interactions with this mock.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...