无法在单元测试中模拟micronaut存储库

fjaof16o  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(416)

我对micronaut还是相当陌生的。
我一直在努力弄清楚为什么我总是遇到这样的测试错误:

AuthenticationHelperTest > testCreateAccount() FAILED
    java.lang.NullPointerException: accountRepository.save(accountModel) must not be null

我可以通过postman手动测试我的端点,它在数据库中创建了一个帐户,但是在测试用例中失败了。

import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.mockito.Mockito
import java.time.LocalDateTime
import java.time.ZoneId

class AuthenticationHelperTest {
    private val accountRepository = Mockito.mock(AccountRepository::class.java)
    @Test
    fun testCreateAccount() {
        val account = Account(
            ...
        )
        Mockito.`when`(accountRepository.save(account)).thenReturn(Account(
            ...
        ))

        val sut = AuthenticationHelper(accountRepository)

        val accountDto = AccountDto(
            ...
        )

        val result = sut.createAccount(accountDto)

        Assertions.assertEquals(1, result.id)
    }
}

谢谢你的任何线索!

hec6srdp

hec6srdp1#

你应该试着用 MockitoExtension ```
@ExtendWith(MockitoExtension.class)
class AuthenticationHelperTest

使用 `@Mock` 注解 `accountRepository` ```
@Mock
private val accountRepository;

相关问题