Mockito для издевательства над последним полем класса - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь имитировать последнее поле класса Student

data class Student(
    val id: Int,
    val name: String,
    val marks: Marks
)

data class Marks(
    val subject1: String
)

, и это мой тестовый класс

class StudentTest {

    @Test
    fun testStudentMarks() {
        val student = mock(Student::class.java)
        assertNotNull(student.id)
        assertNotNull(student.marks)
    }

}

При выполнении теста он проходит student.id, но не работает student.marks с ошибкой ниже

junit.framework.AssertionFailedError
    at junit.framework.Assert.fail(Assert.java:55)
    at junit.framework.Assert.assertTrue(Assert.java:22)
    at junit.framework.Assert.assertNotNull(Assert.java:256)
    at junit.framework.Assert.assertNotNull(Assert.java:248)
    at com.example.mockitotest.StudentTest.testStudentMarks(StudentTest.kt:16)

Как я могу подставить поле меток

1 Ответ

1 голос
/ 10 июля 2020

Поскольку это класс Kotlin, вы можете просто ввести

Mockito.when(student.id).thenReturn(0)

или

val m = Mockito.mock(Marks::class.java)
Mockito.when(student.marks).thenReturn(m)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...