NUnit2022
Missing property required for constraint
| Topic | Value |
|---|---|
| Id | NUnit2022 |
| Severity | Error |
| Enabled | True |
| Category | Assertion |
| Code | MissingPropertyAnalyzer |
Description
The actual argument should have the required property for the constraint.
Motivation
Using property constraints (e.g. Has.Count.EqualTo(1), Has.Property("Prop").EqualTo(expected), etc)
makes sense only when provided actual argument has those properties defined.
[Test]
public void Test()
{
var enumerable = new [] {1,2,3}.Where(i => i > 1);
// Actual argument type 'IEnumerable<int>' has no property 'Count'.
Assert.That(enumerable, Has.Count.EqualTo(2));
}
How to fix violations
Fix your property name, or use another constraint.
Configure severity
Via ruleset file
Configure the severity per project, for more info see MSDN.
Via .editorconfig file
# NUnit2022: Missing property required for constraint
dotnet_diagnostic.NUnit2022.severity = chosenSeverity
where chosenSeverity can be one of none, silent, suggestion, warning, or error.
Via #pragma directive
#pragma warning disable NUnit2022 // Missing property required for constraint
Code violating the rule here
#pragma warning restore NUnit2022 // Missing property required for constraint
Or put this at the top of the file to disable all instances.
#pragma warning disable NUnit2022 // Missing property required for constraint
Via attribute [SuppressMessage]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
"NUnit2022:Missing property required for constraint",
Justification = "Reason...")]