Должен ли я иметь избыточный юнит-тест - PullRequest
0 голосов
/ 13 января 2019

Например, сервер ответит

{
   name: "mike",
   age: "12",
   sex: "male"
}

В моем коде я использую только имя, поэтому мой код будет строковым name = json ["name"];

Для моего модульного теста, должен ли мой пример модульного теста быть фактическим результатом json выше или просто

{
   name: "mike",
}

Так как я только разбираю name поле?

Ответы [ 2 ]

0 голосов
/ 19 января 2019

При написании юнит-тестов вы должны думать для каждого теста, какова цель каждого теста.

В вашем примере целью одного теста может быть проверка того, правильно ли ваш код извлекает имя из результата сервера. Но так как обработка ключей и значений является частью языка, вам не нужно проверять, что это работает для комбинации ключей и значений: выражение json["name"] делает для вас настоящую магию. Таким образом, вы можете сохранить «псевдо» ответ сервера простым: он не должен быть похож на реальный ответ сервера. То есть, с помощью { name: "mike", } все будет в порядке.

Вероятно, будет больше тестовых случаев, например, для проверки того, что ваш код правильно обрабатывает ошибки, например, если сервер отвечает ответом, который не имеет имени - или имеет два или более имен - или выглядит полностью искаженным , Опять же, вам придется определить некоторые «псевдо» результаты сервера.

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

0 голосов
/ 14 января 2019

в модульном тесте, фактический результат будет { имя: "майк", }

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