Написание тестов MSTest
Write, create, modernize, or fix comprehensive MSTest unit tests with MSTest 3.x/4.x APIs. USE FOR: write, create, review, or modernize MSTest tests and assertions, better MSTest assertion than Assert.IsTrue, replace hard cast with IsInstanceOfType, MSTest assertion APIs (Contains, ContainsSingle, HasCount, IsEmpty, IsNotEmpty, DoesNotContain, AreSame, IsNull, StartsWith, EndsWith, MatchesRegex, I
Что делает навык
Помогает писать, создавать, модернизировать или исправлять комплексные unit-тесты MSTest с использованием API MSTest 3.x/4.x. Обеспечивает использование специфичных утверждений (assertions) вместо общих, замену жёстких приведений типов на IsInstanceOfType и корректную обработку аргументов в методах сравнения.
Когда применять
- Модернизация существующих тестов MSTest с заменой Assert.IsTrue на более специфичные утверждения (коллекции, null, типы, сравнения).
- Замена жёстких приведений типов (hard casts) в тестах на типобезопасные утверждения IsInstanceOfType.
- Исправление ошибок в аргументах Assert.AreEqual (ожидание/факт) или других assertion API.
- Конвертация данных DynamicData из IEnumerable<object[]> в формат ValueTuple.
- Исправление или анализ диагностик анализатора MSTest (MSTESTxxxx).
Как работает
- Проверить наличие и валидность файла .agents/skill-overlays/dotnet-test/writing-mstest-tests.md в репозитории; при наличии применить его правила, иначе использовать портативные рекомендации.
- Определить версию MSTest и систему сборки проекта (MSTest.Sdk, метапакет или XML), чтобы выбрать совместимые API и не использовать функции, недоступные в текущей версии.
- Сгенерировать или исправить код теста, соблюдая конвенции: sealed классы, атрибуты [TestClass]/[TestMethod], паттерн AAA и именование MethodName_Scenario_ExpectedBehavior.
- Применить наиболее специфичное утверждение, доступное в установленной версии MSTest (например, Assert.ThrowsExactly для 3.8+, IsInstanceOfType для 3.4+).
- Корректно расставить аргументы в сравнениях (expected first, actual second) и ограничить бросаемые исключения лямбда-выражениями.
Примеры запросов агенту
Что понадобится
- Доступ к файловой системе репозитория для проверки .agents/skill-overlays/dotnet-test/writing-mstest-tests.md
- Знание версии MSTest и структуры проекта (SDK, пакеты, assembly references)
Описание составлено по SKILL.md навыка, сверено 05.10.2026.
Как подключить
SKILL.md к навыкам ассистентаНавык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.