Должны ли положительные и отрицательные модульные тесты для одного метода проводить индивидуальные тесты?

Скажем, например, у меня есть метод, который проверяет действительные почтовые индексы Великобритании. Я написал единичный тест для этого метода, который проверяет, когда передается правильный почтовый индекс Великобритании, метод возвращает true.

Должен ли я создать отдельный модульный тест для проверки неправильного почтового индекса Великобритании или сделать это в одном модульном тесте?

благодаря

4
Посмотрите тестовые примеры, тестовые комплекты и т. Д. См. ru.wikipedia.org/wiki/XUnit
добавлено автор Ed Heal, источник
На каком языке это будет? Существует множество инфраструктур
добавлено автор Ed Heal, источник

3 ответы

Вы должны создать отдельные тестовые примеры для каждого случая. Это даст вам уверенность в том, что любой будущий код, который вызывает этот метод, будет работать, также если вы рефакторинг, вы можете точно увидеть, какой тест терпит неудачу, вместо того, чтобы просто увидеть, как 1test терпит неудачу и не имеют понятия, почему.

5
добавлено

Лично я бы написал несколько тестов, которые проверяют, что он работает правильно с разными типами допустимых почтовых индексов (NE1 2XX, NE21 2XX, E1 3YY и т. Д., Проверяя различные допустимые комбинации символов и чисел) и несколько неудачных тестов с недопустимыми различные типы (например, NEI 3XX).

1
добавлено

Я использую две функции: test_valid_data() и test_invalid_data() и два набора данных, например valid_data [] и invalid_data [] . Затем я пишу четыре процедуры тестирования:

  • test_valid_data(valid_data[]) : This test should pass
  • test_valid_data(invalid_data[]) : This test should fail
  • test_invalid_data(valid_data[]) : This test should fail
  • test_invalid_data(invalid_data[]) : This test should pass

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

1
добавлено
Можете ли вы привести мне пример? Я думаю, что это действительно интересный метод.
добавлено автор ediblecode, источник
После вашего примера с британскими почтовыми индексами создайте две функции тестирования: test_valid_postcode() и test_invalid_postcode() После этого создайте два набора данных: valid_postcode [] и invalid_postcode [] . Первый должен содержать список действительного почтового индекса Великобритании для тестирования (например: M1 1AA, B33 8TH, EC1A 1BB и т. Д.). Более поздний должен содержать список недопустимых почтовых индексов Великобритании (например: M1 1AAAAAAAA, B33 8TH BCB 123 и т. Д.). Теперь вы должны проверить каждый набор данных на каждую функцию. Это дает вам четыре возможные комбинации. Два из них должны пройти тест, а два других потерпеть неудачу.
добавлено автор fmorency, источник
Поскольку вы знаете, что два теста не работают, вы можете справиться с ним должным образом. Если один из двух тестов, которые должны быть пропущены, вы знаете, что с вашим кодом что-то не так.
добавлено автор fmorency, источник
QA — вакансии и аналитика рынка вакансий
QA — вакансии и аналитика рынка вакансий
5 668 участник(ов)

Вакансии и поиск работы в сфере QA. Вопросы: @qa_ru Про деньги: @qa_fin При размещении вакансии указывать: - должность - компанию - требования к кандидату - условия и ЗП хэштеги: #город #типзанятости

QA — русскоговорящее сообщество
QA — русскоговорящее сообщество
3 625 участник(ов)

Общаемся про все виды тестирования и его автоматизацию. Без мата, грубостей и провокаций. События: @qaevents Вакансии: @qa_jobs Автоматизаторы: @qa_automation Слухи про компании: @qa_bad_company

QA juniors
QA juniors
2 720 участник(ов)

Добро пожаловать в чат джуниоров QA! Общаемся обо всём, что связано с тестированием и не только :) В чате царит дружественная атмосфера, поэтому общаемся без мата, грубостей. @qa_automation - автоматизация @serious_tester - для тестировщиков и QA

QA - Bad Company!
QA - Bad Company!
2 602 участник(ов)

Позитив и негатив про компании или курсы, куда не стоит идти работать или учиться, а куда стоит. За пиратский контент - бан. @qa_fin о деньгах Русскоговорящее сообщество: @qa_ru Флудилка: @qaFlood Вакансии: @qa_jobs Финансы: @qa_fin

QA — Автоматизация
QA — Автоматизация
2 434 участник(ов)

1. Обсуждение технологий автоматизированного тестирования 2. Помощь начинающим Ru-сообщество: @qa_ru Джуночат: @qajuniors Вакансии: @qa_jobs Финансы: @qa_fin Митапы и события: @qaevents Паблики: @serious_tester, @automation_remarks, @atinfo

QA - Finance
QA - Finance
1 347 участник(ов)

Чат о деньгах тестировщиков. ЗП, релокейты,оферы. @qa_bad_company - обсуждение компаний/курсов и карьерного роста для QA @qa_automation - авто QA Холивары, политика, религия-бан Реклама, спам, оскорбления - бан Для флуда используйте другой чат