Edit on GitHub

xUnit1014   v2 v3   Warning

MemberData should use nameof operator for member name

Cause

This rule is triggered by [MemberData] which uses a string for the member name.

Reason for rule

Using nameof instead of a string literal value allows rename refactoring to change the values in [MemberData] in the event the developer renames the data member name.

How to fix violations

To fix a violation of this rule, convert from the string literal to nameof.

Examples

Violates

using System.Collections.Generic;
using Xunit;

public class xUnit1014
{
    public static IEnumerable<object[]> TestData;

    [Theory]
    [MemberData("TestData")]
    public void TestMethod(string greeting, int age) { }
}

Example(s) of code that violates the rule.

Does not violate

using System.Collections.Generic;
using Xunit;

public class xUnit1014
{
    public static IEnumerable<object[]> TestData;

    [Theory]
    [MemberData(nameof(TestData))]
    public void TestMethod(string greeting, int age) { }
}
Copyright © .NET Foundation. Contributions welcomed at https://github.com/xunit/xunit/tree/gh-pages.