AIKraft/Skills/Написание тестов MSTest

Написание тестов 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

dotnet official Дизайн

Что делает навык

Помогает писать, создавать, модернизировать или исправлять комплексные 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).

Как работает

  1. Проверить наличие и валидность файла .agents/skill-overlays/dotnet-test/writing-mstest-tests.md в репозитории; при наличии применить его правила, иначе использовать портативные рекомендации.
  2. Определить версию MSTest и систему сборки проекта (MSTest.Sdk, метапакет или XML), чтобы выбрать совместимые API и не использовать функции, недоступные в текущей версии.
  3. Сгенерировать или исправить код теста, соблюдая конвенции: sealed классы, атрибуты [TestClass]/[TestMethod], паттерн AAA и именование MethodName_Scenario_ExpectedBehavior.
  4. Применить наиболее специфичное утверждение, доступное в установленной версии MSTest (например, Assert.ThrowsExactly для 3.8+, IsInstanceOfType для 3.4+).
  5. Корректно расставить аргументы в сравнениях (expected first, actual second) и ограничить бросаемые исключения лямбда-выражениями.

Примеры запросов агенту

Как заменить Assert.IsTrue(list.Count > 0) на современное утверждение MSTest?
Исправь порядок аргументов в Assert.AreEqual и замени жесткое приведение типов на IsInstanceOfType.
Напиши тест для проверки выброса исключения ArgumentNullException с проверкой свойства ParamName.

Что понадобится

  • Доступ к файловой системе репозитория для проверки .agents/skill-overlays/dotnet-test/writing-mstest-tests.md
  • Знание версии MSTest и структуры проекта (SDK, пакеты, assembly references)

Описание составлено по SKILL.md навыка, сверено 05.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «writing-mstest-tests» из репозитория: # https://github.com/dotnet/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r writing-mstest-tests/ ~/.claude/skills/writing-mstest-tests/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.