Edit on GitHub

xUnit1035   v2 v3   Error

The value is not convertible to the method parameter type

Cause

When you use [MemberData] to target a method and pass that method arguments, the values must match the type specified in the method parameters.

Reason for rule

Passing the wrong type of value will result in your test failing because the provided data cannot be correctly passed to the method data function.

How to fix violations

To fix a violation of this rule, fix either the data value or the parameter type.

Examples

Violates

using Xunit;

public class xUnit1035
{
    public static TheoryData<string> TestData(string s) =>
        new() { s };

    [Theory]
    [MemberData(nameof(TestData), new object[] { 2112 })]
    public void TestMethod(string _)
    { }
}

Does not violate

using Xunit;

public class xUnit1035
{
    public static TheoryData<string> TestData(int n) =>
        new() { n.ToString() };

    [Theory]
    [MemberData(nameof(TestData), new object[] { 2112 })]
    public void TestMethod(string _)
    { }
}
using Xunit;

public class xUnit1035
{
    public static TheoryData<string> TestData(string s) =>
        new() { s };

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