Android - издевательская проблема - PullRequest
0 голосов
/ 08 октября 2018

У меня есть пользовательский класс:

class MyClass {
    var name = ""

    fun changeName(newName: String) {
        name = newName
    }
}

и мой класс тестирования:

@Test
fun testVerifyMock() {
    val instance: MyClass = mock()

    instance.changeName("newname")

    Assert.assertEquals("newname", instance.name)
}

Я новичок в модульных тестах, и я немного застрял, может кто-нибудь пожалуйстаукажите мне, почему я получаю эту ошибку:

java.lang.AssertionError: 
Expected :newname
Actual   :null

По сути, вызов instance.changeName("newname"), похоже, не меняет имя, поскольку он всегда null

1 Ответ

0 голосов
/ 08 октября 2018

Макеты Mockito просто игнорируют то, что вы передаете их методам, если вы явно не говорите им, что делать.В случае changeName параметр просто игнорируется, и поэтому name останется null.Я не понимаю, почему вы все равно использовали бы здесь макет, поэтому просто измените на:

val instance = MyClass()
...

Вот пост на "когда использовать макет" .

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