androidTest assertEquals не удается - PullRequest
0 голосов
/ 08 января 2019

Я учусь создавать сквозные тесты, поэтому я написал объект-компаньон следующим образом:

companion object {
    lateinit var sDataManager: DataManager

    @BeforeClass
    @JvmStatic
    fun classSetUp() {
        sDataManager = DataManager.getInstance()
    }
}

Тест выглядит следующим образом

@Test
fun createNewNote() {
    val course = sDataManager.getCourse("java_lang")
    val noteTitle = "Test note title"
    val noteText = "This is the body of our test note"

    onView(withId(R.id.fab)).perform(click())

    onView(withId(R.id.spinner_courses)).perform(click())
    onData(allOf(instanceOf(CourseInfo::class.java), equalTo(course))).perform(click())
    onView(withId(R.id.spinner_courses)).check(matches(withSpinnerText(containsString(course.title))))

    onView(withId(R.id.text_note_title)).perform(typeText(noteTitle))
        .check(matches(withText(containsString(noteTitle))))

    onView(withId(R.id.text_note_text)).perform(typeText(noteText), closeSoftKeyboard())
        .check(matches(withText(containsString(noteText))))


    val noteIndex = sDataManager.notes.size - 1
    val note = sDataManager.notes[noteIndex]
    assertEquals(noteTitle, note.title)
    assertEquals(noteText, note.text)

    assertEquals(course, note.course)
}

Все, кроме утверждений, работает, я знаю, что создается новая заметка, потому что размер в sDataManager.notes увеличивается. Если я отлаживаю тест при извлечении последней заметки val note = notes[noteIndex] в разделе переменных, я вижу следующую ошибку note = {NoteInfo@12151} Method threw 'java.lang.NullPointerException' exception. Cannot evaluate com.example.jaime.notekeeper.mode.NoteInfo.toString(). Действительно, свойства в note равны нулю. Я не знаю, связана ли эта проблема с тем, что я делаю что-то не так в тесте или в DataManager.

Кстати, когда я запускаю приложение, все работает как положено, у меня также есть модульные тесты, чтобы проверить, создана ли заметка, все тесты проходят.

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