Аргументы Мокито, которые возвращают нуль, когда в Котлине - PullRequest
0 голосов
/ 18 сентября 2018

Учитывая следующий класс (написанный на kotlin):

class Target {
     fun <R> target(filter: String, mapper: (String) -> R): R = mapper(filter)
}

Я могу проверить в java, код теста:

@Test
public void testInJava() {
    Target mockTarget = Mockito.mock(Target.class);
    Mockito.when(mockTarget.target(
            argThat(it -> true),
            Mockito.argThat(it -> true)
    )).thenReturn(100);
    assert mockTarget.target("Hello World", it -> 1) == 100;
}

Пройденный Java-тест, как и ожидалось, но тот же тест написан на kotlin:

@Test
fun test() {
    val mockTarget = Mockito.mock(Target::class.java)
    Mockito.`when`(mockTarget.target(
            Mockito.argThat<String> { true },
            mapper = Mockito.argThat<Function1<String, Int>>({ true }))
    ).thenReturn(100)
    assert(mockTarget.target("Hello World") { 1 } == 100)
}

Версия kotlin Я получаю следующее исключение:

java.lang.IllegalStateException: Mockito.argThat<String> { true } must not be null

Почему это происходит и как я могу проверить это с помощью kotlin?

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