Привет. Я пытаюсь смоделировать коллекцию KMongo, но я передаю ее в MongoDatabase, а хранилище получает свою коллекцию.Я считаю, что очиститель.
Я пытаюсь создать макет базы данных, который возвращает макет коллекции:
@RunWith(MockitoJUnitRunner::class)
class UserRepositoryTest {
@Mock
lateinit var userCollectionMock: MongoCollection<User>
@Mock
lateinit var database: MongoDatabase
@Test
fun isInsertOneCalledTest() {
runBlocking {
whenever(userCollectionMock.insertOne(any<User>(), any<InsertOneOptions>())).thenAnswer { null }
whenever(database.getCollection(any())).thenAnswer { userCollectionMock }
val userRepository = UserMongoRepository(database)
val testUser = User(UUID.randomUUID().toString(), "test@outlook.com")
userRepository.createUser(testUser)
verify(userCollectionMock.insertOne(any<User>(), any<InsertOneOptions>()))
}
}
}
Выдает эту ошибку:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: недопустимое использование сопоставителей аргументов!Ожидается 3 совпадения, 2 записано: -> на com.bkaraargirov.users.UserRepositoryTest $ isInsertOneCalledTest $ 1.invokeSuspend (UserRepositoryTest.kt: 48) -> на com.bkaraargirov.users.UserRepositoryTest $ isInsertOneCalledToryTestTestTestTest $ 1.invo:)
Я могу прочитать ошибку - аргументы кажутся нормальными.Он взрывается с первого раза ().На этом макете я возвращаю ноль, так как тип возвращаемого значения: Void?