Table of Contents
  v2 v3   Warning

xUnit1025

"InlineData should be unique within the Theory it belongs to"

Cause

Test data provided with InlineDataAttribute is duplicated in other InlineDataAttribute occurence(s).

Reason for rule

Having test data duplicated leads to duplication of test ID which may result in incorrect or unexpected behavior. This usually comes from:

  • typos
  • test data copying and not updating
  • not taking into account default values or params defined parameters

How to fix violations

Remove duplicated InlineDataAttribute occurrences.

Examples

Violates

using Xunit;

public class xUnit1025
{
    [Theory]
    [InlineData(2)]
    [InlineData(2)]
    public void TestMethod(int x)
    { }
}
using Xunit;

public class xUnit1025
{
    [Theory]
    [InlineData(2)]
    [InlineData(2, 0)]
    public void TestMethod(int x, int y = 0)
    { }
}
using Xunit;

public class xUnit1025
{
    [Theory]
    [InlineData(1, 2, 3)]
    [InlineData(new object[] { 1, 2, 3 })]
    public void TestMethod(params int[] args)
    { }
}

Does not violate

using Xunit;

public class xUnit1025
{
    [Theory]
    [InlineData(2)]
    public void TestMethod(int x)
    { }
}
using Xunit;

public class xUnit1025
{
    [Theory]
    [InlineData(2)]
    public void TestMethod(int x, int y = 0)
    { }
}
using Xunit;

public class xUnit1025
{
    [Theory]
    [InlineData(1, 2, 3)]
    public void TestMethod(params int[] args)
    { }
}