Я издеваюсь над Дао, который внедряется в класс репозитория, который я тестирую.При использовании Mockito.verify (myDao) он отлично работает вне класса Repository.Когда я использую его, он говорит, что метод был вызван один раз, именно то, что я ожидал.Однако внутри класса репозитория он всегда будет выдавать (Wanted, но не вызывается:)
Что странно в том, что Mockito. when
() прекрасно работает в классе Repository, я знаю это, потому что я заполнилэто с заявлениями Log.d.Операторы log.d показывают, что используется список, переданный с помощью Mockito. when
(). Thenreturn (myList).Это в хранилище.Однако, хотя я ясно вижу, что этот метод был вызван, Mockito.verify (), похоже, все еще верит, что его никогда не вызывали.
@RunWith(MockitoJUnitRunner::class)
class RepositoryTests {
@InjectMocks
private lateinit var repos: Repository
@Mock
lateinit var mockedDao : MomentDao
@get:Rule
val activityRule = ActivityTestRule(MainActivity::class.java)
@get:Rule
val mockitoRule: MockitoRule = MockitoJUnit.rule()
@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())
}
Итак, Mockito.when() работает нормально, а momentList содержится в репозитории, как и ожидалось.Mockito.verify каждый раз терпит неудачу.
Любая информация по этому вопросу будет принята с благодарностью.
Это была ошибка.
Wanted but not invoked:
mockedDao.findMomentsByBound(
<any double>,
<any double>,
<any double>,
<any double>
);
-> at
com.example.barrechat108.RepositoryTests.hardDaoTest (RepositoryTests.kt: 147) На самом деле с этим макетом не было никаких взаимодействий.
at
com.example.barrechat108.RepositoryTests.hardDaoTest (RepositoryTests.kt: 147) на java.lang.reflect.Method.invoke (нативный метод)