Как мне это проверить? - PullRequest
       7

Как мне это проверить?

0 голосов
/ 03 апреля 2012

У меня есть субъект, который имеет 15 членов. Существуют различные типы членов, к которым применяются различные правила, некоторые допускают пустые значения, а некоторые нет. Вот объект базы данных:

tbl_items(
item_id bigint identity(1,1) not null primary key,
item_category bigint null foreign key references tbl_categories(category_id) on delete set null,
item_model nvarchar(50) not null,
item_brand nvarchar(50) not null,
item_color nvarchar(20) not null,
item_made_in nvarchar(20) null,
item_desc nvarchar(100) null,
item_price decimal not null,
item_image varbinary(max) null,
item_monetary_unit nvarchar(10) not null,
item_rating int null,
item_date datetime not null,
item_quantity int not null
)

Модульное тестирование всех состояний, которые могут иметь записи данных, приведет к тому, что мой класс модульного теста (ItemTest) будет иметь более 1000 строк кода. Так что мне нужно написать метод тестирования для каждого состояния данных? Или я должен рассматривать только недопустимые состояния для написания тестовых методов? Например, иметь значение NULL, пока свойство не обнуляется.

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Если вы используете NUnit или что-то подобное, есть две концепции, которые могут помочь с этим:

  1. Тестовые случаи позволяют передавать параметры для факторизованного метода тестирования: http://nunit.org/?p=testCase&r=2.5
  2. Теории испытаний позволяют автоматически создавать все возможные входные данные. Предупреждение: они могут создавать очень медленные тесты, поэтому используйте их осторожно и осторожно. http://nunit.org/index.php?p=theory&r=2.5

Что касается того, что вы должны тестировать, ответ на этот вопрос сильно различается. Некоторые люди пишут межуровневые приемочные тесты на уровне контроллера. Некоторые люди макетируют все зависимости и пишут изолированные модульные тесты. Вы должны увидеть, что вы и ваша команда хотите сделать, и попробовать разные стратегии. Лично для ситуации, подобной той, что вы описали, я бы написал общий тест для ваших функций проверки. Затем напишите TestCase для всех действительно различных случаев.

1 голос
/ 03 апреля 2012

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

...