MSTEST0017. Аргументы утверждения должны передаваться в правильном порядке
Свойство | Значение |
---|---|
Идентификатор правила | MSTEST0017 |
Заголовок | Аргументы утверждения должны передаваться в правильном порядке |
Категория | Использование |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию | Да |
Серьезность по умолчанию | Сведения |
Представлено в версии | 3.4.0 |
Есть ли исправление кода? | Да |
Причина
Это правило вызывает проблему при вызове Assert.AreEqual
, Assert.AreNotEqual
Assert.AreSame
или Assert.AreNotSame
в одном или нескольких из приведенных ниже шаблонов:
-
actual
аргумент является константой или литеральным значением -
actual
переменная аргумента начинается сexpected
или_expected
Expected
-
expected
илиnotExpected
переменная аргумента начинается сactual
-
actual
не является локальной переменной
Описание правила
MSTest Assert.AreEqual
, Assert.AreNotEqual
Assert.AreSame
и Assert.AreNotSame
ожидает, что первый аргумент будет ожидаемым/непредвиденным значением, а второй аргумент должен быть фактическим значением.
Наличие ожидаемого значения и фактического значения в неправильном порядке не изменит результат теста (успешно или завершается сбоем, когда он должен), но сбой утверждения будет содержать вводящую информацию.
Устранение нарушений
Убедитесь, что actual
и expected
/notExpected
аргументы передаются в правильном порядке.
Когда лучше отключить предупреждения
Не подавляйте предупреждение из этого правила, так как это приведет к вводу в заблуждение выходных данных.
Подавление предупреждения
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable MSTEST0017
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0017
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0017.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.