Метод испытания с приемником с JUnit4 и Kotlin - PullRequest
0 голосов
/ 03 июля 2019

Возможно ли иметь метод испытаний с приемником, использующим JUnit4?Теперь мои тесты выглядят следующим образом:

@Test
fun `exits adding item mode after item added`() {
    viewModel.onAddNewClick()
    viewModel.newItemName.value = "New item name"
    viewModel.onAddingConfirmed()

    assertThat(viewModel.items.value?.contains(AddNewItem), Is(false))
    assertThat(viewModel.newItemName.value, Is(""))
}

Как вы можете видеть, я ссылаюсь на viewModel (класс, который будет тестироваться) в каждой строке, и это загромождает код.

Добавление with(viewModel) делает его более чистым:

@Test
fun `exits adding item mode after item added`() {
    with(viewModel) {
        onAddNewClick()
        newItemName.value = "New item name"
        onAddingConfirmed()

        assertThat(items.value?.contains(AddNewItem), Is(false))
        assertThat(newItemName.value, Is(""))
    }
}

Это добавляет, однако, один уровень отступа, и я был бы рад, если бы я мог избежать повторения этого шаблона в каждом тестеmethod.

Я попытался наивно добавить получателя в сигнатуру метода тестирования:

fun BaggageListViewModel.`exits adding item mode after item added`() {

, но JUnit runner не разрешает такое решение и выдает исключение во время выполнения теста:

java.lang.Exception: Method when no items, displays no items message should have no parameters

Есть ли способ, позволяющий использовать приемник в функции тестирования?

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