v2
v3
Info
xUnit2023
"Do not use collection methods for single-item collections"
Cause
A violation of this rule occurs when you use Assert.Collection to verify that a collection
has a single item in it.
Reason for rule
Using Assert.Collection is designed for inspecting multiple items in a collection. When a
collection is only expected to have a single item in it, using Assert.Single to get the item
makes the code more concise and readable, especially when performing multiple assertions against
the item.
How to fix violations
To fix a violation of this rule, replace Assert.Collection with Assert.Single and move the
assertions out into the body of the unit test.
Examples
Violates
using Xunit;
public class xUnit2023
{
[Fact]
public void TestMethod()
{
var collection = new[] { 1 };
Assert.Collection(
collection,
item => Assert.Equal(1, item)
);
}
}
Does not violate
using Xunit;
public class xUnit2023
{
[Fact]
public void TestMethod()
{
var collection = new[] { 1 };
var item = Assert.Single(collection);
Assert.Equal(1, item);
}
}