Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Правила проектирования помогают создавать и поддерживать наборы тестов, которые соответствуют правильному проектированию и рекомендациям. Эти правила сосредоточены на структуре тестирования, рекомендациях и распространенных шаблонах, которые приводят к поддерживаемому коду теста.
Правила в этой категории
| Идентификатор правила | Название | Severity | Исправление доступно |
|---|---|---|---|
| MSTEST0004 | Общедоступные типы должны быть тестовыми классами. | Info | Да |
| MSTEST0006 | Избегайте атрибута ExpectedException. | Info | Да |
| MSTEST0015 | Метод тестирования не должен игнорироваться. | Нет (по желанию) | нет |
| MSTEST0016 | Тестовый класс должен иметь метод тестирования. | Info | нет |
| MSTEST0019 | Предпочитайте TestInitialize над конструкторами. | Нет (по желанию) | Да |
| MSTEST0020 | Предпочитайте использовать конструкторы вместо TestInitialize. | Нет (по желанию) | Да |
| MSTEST0021 | Предпочитайте метод Dispose, а не TestCleanup. | Нет (по желанию) | Да |
| MSTEST0022 | Предпочитайте TestCleanup по сравнению с Dispose. | Нет (по желанию) | Да |
| MSTEST0025 | Предпочитайте Assert.Fail вместо условий, которые всегда ложны. | Info | Да |
| MSTEST0029 | Общедоступный метод должен быть методом тестирования. | Info | Да |
| MSTEST0036 | Не используйте тень. | Предупреждение | нет |
| MSTEST0044 | Предпочитайте TestMethod для DataTestMethod. | Info | Да |
| MSTEST0045 | Используйте совместную отмену для таймаута. | Info | Да |
Распространенные сценарии
Структура тестового класса
При создании тестового класса эти правила помогают обеспечить правильную структуру:
- MSTEST0004. Сохранение внутренних вспомогательных классов, только тестовые классы должны быть общедоступными.
- MSTEST0016. Убедитесь, что тестовые классы содержат по крайней мере один метод теста.
- MSTEST0029. Общедоступные методы в классах тестирования должны быть методами тестирования.
Шаблоны инициализации
MSTest поддерживает как конструкторы, так и методы TestInitialize. Эти взаимоисключающие правила позволяют применять согласованный шаблон:
- MSTEST0019. Принудительное применение TestInitialize для инициализации (полезно для асинхронных сценариев).
- MSTEST0020: Обязательное использование конструкторов для инициализации (лучше для полей только для чтения).
Шаблоны очистки
Аналогичным образом выберите между "Dispose" и "TestCleanup":
- MSTEST0021: Обеспечить применение паттерна Dispose для очистки.
- MSTEST0022: Требуется использовать TestCleanup для очистки.
Лучшие утверждения
- MSTEST0006. Используйте Assert.ThrowsExactly вместо [ExpectedException] для повышения точности.
- MSTEST0025: используйте Assert.Fail вместо Assert.IsTrue(false).
Качество теста
- MSTEST0015: Помечать игнорируемые тесты (правило по выбору).
- MSTEST0036. Избегайте тени членов базового класса.
- MSTEST0044. Используйте TestMethod, если не требуется тестирование на основе данных.
- MSTEST0045: Включите токены отмены для обработки времени ожидания.