как создавать модульные тесты для kotlin классов данных - PullRequest
0 голосов
/ 07 мая 2020

Я создал несколько классов данных для своего примера приложения. Сейчас мне нужно написать модульные тесты для этих классов данных. Я использую Junit4.12. Вот мой класс данных:

data class Tracking(val  param1 : String?=null, val  param2 : String?=null, val param3 : String?=null){}

Я попытался написать один базовый c модульный тестовый пример для этой модели, как показано ниже:

@Test
    fun tracking()
    {
        val trackingData= Tracking("7030054",
        "skdfksbfbkjsdf",
        "dfkhsbfsjf")
        Assert.assertEquals("true",trackingData.param1,"7030054")
    }

Но я не вижу, что это правильно способ выполнения модульного теста. Моя цель для случая модульного тестирования - заявить об исключении, если пользователь отправляет нулевое значение в качестве входных данных. Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 07 мая 2020

Все ваши значения String ?, поэтому допускают значение NULL. Если вы хотите, чтобы они всегда были ненулевыми, используйте вместо этого String. Тогда вам не нужен модульный тест, поскольку компилятор проверяет отсутствие обнуления.

Если они иногда могут быть нулевыми, но не всегда, вы должны сначала написать функцию, которая проверяет это условие. Очень простой пример - это что-то вроде

fun simpleValidation() {
  if(param1 == null) {
    throw RuntimeException("Should not be null")
  }
}

в отслеживании классов. Вы можете выполнить модульное тестирование с помощью

@Test
    fun tracking()
    {
        val trackingData= Tracking(null,
        "skdfksbfbkjsdf",
        "dfkhsbfsjf")
        Assertions.assertThrows(RuntimeException::class.java) { trackingData.simpleValidation() }
    }

, если вы используете JUnit5

...