Невозможно смоделировать данные для проверки класса Usecase - PullRequest
0 голосов
/ 29 марта 2020

Я пишу модульный тест для одного из Usecase классов. Проект android содержит код Java и Kotlin. Вот соответствующий фрагмент зависимости Gradle

testImplementation 'org.robolectric:robolectric:3.7.1'
testImplementation 'org.mockito:mockito-core:1.9.5'

. Вариант использования аутентифицирует студента и возвращает действительные токены, вызывая экземпляр репозитория для сетевых операций. Что я делаю в тестовом классе Usecase, так это то, что я высмеиваю данные, возвращаемые репозиторием, чтобы я мог самостоятельно протестировать Usecase.

@RunWith(RobolectricTestRunner::class)
class StudentUsecaseTest {
    private lateinit var usecase: IStudentUsecase
    private lateinit var expectedResponse: TokenResponse

    @Before
    fun setUp() {
        usecase = obtainInstance()

        expectedResponse = TokenResponse(
                "token123",
                "12223335789" //expiry date
        )

        `when`<TokenResponse>(usecase.authenticate(
                any(DeviceInfo::class.java),  << error points here
                "",
                "",
                ""
        )).thenReturn(expectedResponse)
    }

    @Test
    @Throws(ResponseException::class)
    fun authenticateAccountSuccessful() {
        val deviceInfo = DeviceInfoDTO(
                "Qwer1244d",
                "Pixel",
                details = ""
        )


        val networkesponse = usecase.authenticate(
                deviceInfo,
                "TestUser",
                "TestPassword",
                "APITest477P"
        )
        assertEquals("token123", networkesponse?.token, "Refresh token not matching")
    }
}

Когда я запускаю тест, я получаю следующую ошибку

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter scope

DeviceInfo определено не равным NULL, и я также передаю допустимый объект. Не уверен, что блокирует запуск теста.

Есть ли что-то, чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...