Пай-Test долженКакой атрибут должен иметь хороший модульный тест?
- производит детерминированный результат
- быть независимым
- быть действительным
- ...
Каких характеристик должен тест также иметь?
Пай-Test долженКакой атрибут должен иметь хороший модульный тест?
Каких характеристик должен тест также иметь?
Ач. Мой любимый предмет :-) С чего начать ...
Согласно XUnit тестовых образцов Джерард Месарош (книга для чтения о модульном тестировании)
Некоторые вещи, чтобы сделать это проще:
других вещей, чтобы посмотреть на:
Именования
Имеет описательное имя. Имена тестов должны читаться как спецификации. Если ваши имена слишком длинны, вы, вероятно, слишком много тестируете.
Использование структуры ААА. Это новая причуда для насмешливых фреймворков, но я думаю, что это хороший способ структурировать все ваши тесты, как это.
организовать ваш контекст
закона, не вещи, которые должны быть проверены
Assert, утверждают, что вы хотите, чтобы проверить
Я обычно делю свои тесты в трех блоках кода. Знание этого шаблона делает тесты более читабельными.
Mocks против окурков
При использовании насмешливых рамок всегда пытается использовать заглушки и тестирование на основе состояния, прежде чем прибегать к насмешливым.
Заглушки - это объекты, которые стоят в зависимостях объекта, который вы пытаетесь протестировать. Вы можете программировать поведение в них, и их можно вызвать в ваших тестах. Mocks расширяет это, позволяя вам утверждать, были ли они вызваны и как. Mocking очень мощный, но он позволяет протестировать реализацию вместо предварительных и пост-условий вашего кода. Это, как правило, делает тесты более хрупкими.
Ответ прагматической программистов: хорошие тесты должны быть рейсовые
Другие факторы, о которых следует помнить, - это время работы. Если тест проходит слишком долго, он, скорее всего, будет пропущен.
Единичный тест должен быть быстрым: сотни испытаний должны быть в состоянии работать через несколько секунд.
То, что я еще не видел, упоминается в другом месте: small. Единичный тест должен проверять одну вещь, и все. Я стараюсь иметь только одно утверждение и свести к минимуму количество кода установки путем реорганизации их в свои собственные методы. Я также создам свои собственные пользовательские утверждения. Хороший небольшой единичный тест IMO составляет около 10 строк или меньше. Когда тест небольшой, легко понять, что пытается сделать тест. Большие тесты в конечном итоге остаются незаменимыми.
Конечно, маленький - это не единственное, на что я нацелен ... это только одна из вещей, которые я ценю в модульном тесте. :-)
Я считаю, что проведение тестов небольшого размера является положительным побочным эффектом после следующих хороших методик тестирования. – Spoike
тест не тестовый модуль, если:
Испытания, которые делают эти вещи, являются неплохими. Зачастую их стоит писать, и их можно записать в единый тестовый жгут. Тем не менее, важно иметь возможность отделить их от настоящих модульных тестов, чтобы мы могли поддерживать набор тестов, которые мы можем выполнять быстро, когда мы вносим изменения.
источник: A Set of Unit Testing Rules
Дубликат http://stackoverflow.com/questions/61400/what-makes-a-good-unit-test – Spoike