Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Правила проектирования помогают создавать и поддерживать наборы тестов, которые соответствуют правильному проектированию и рекомендациям. Эти правила сосредоточены на структуре тестирования, рекомендациях и распространенных шаблонах, которые приводят к поддерживаемому коду теста.
Правила в этой категории
| Идентификатор правила | Название | 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: Включите токены отмены для обработки времени ожидания.