Здравствуйте, у меня есть тестовый класс с именем UserServiceTest, который содержит класс userService, который внедряется с помощью вышеуказанных макетов, и тесты в этом тестовом классе работают нормально.
@RunWith(MockitoJUnitRunner::class)
class UserServiceTest {
lateinit var login: Login
@Mock
lateinit var userRepository: UserRepository
@Mock
lateinit var emailService: EmailService
@InjectMocks
lateinit var userService: UserService
@Before
fun setup() {
login = Login(email = "mohanraj@gmail.com", password = "qwerty"
}
И у меня есть другой тестовый класс с именем AdminServiceTests, которыйсодержит AdminServiceClass, который внедряется с помощью вышеуказанных макетов, который также состоит из класса userService
@RunWith(MockitoJUnitRunner::class)
class AdminServiceTests {
lateinit var user: User
@Mock
lateinit var userRepository: UserRepository
@Mock
lateinit var adminRepository: AdminRepository
@Mock
lateinit var userService: UserService
@InjectMocks
lateinit var adminService: AdminService
@Before
fun setup() {
this.createAdmin = CreateAdmin().apply {
email = "admin@gmail.com"
name = "admin"
password = "qwerty"
phone = 98345678899
}
}
@Test
fun testCreateAdmin() {
val result = adminService.createAdmin(createAdmin)
Assert.assertEquals(true, result)
}
Когда я запускаю тест, adminService.createAdmin (createAdmin) вызывает функцию в adminService, которая вызывает функцию в userService
fun createAdmin(newUser: CreateAdmin): Boolean {
val user = userService.getUser(newUser)
if (userService.createUser(user)) { // calls a function in user service
this.saveAdmin(user.id)
return true
}
return false
}
Я хочу вызвать функцию в userService из функции testCreateAdmin, но служба пользователя, которую я включил как @Mock, содержит некоторые зависимости для себя и это зависимость для adminService, поэтому при отладке @Ложный объект userService содержит ноль, поэтому функция в userService не вызывается.так как внедрить зависимости в userService и внедрить его в adminService .. Пожалуйста, помогите
userService = {UserService$MockitoMock$825690330@2479}
mockitoInterceptor = {MockMethodInterceptor@2532}
userRepository = null
emailService = null