c#xunit成员数据获取数据两次

c#xunit成员数据获取数据两次,c#,xunit,xunit.net,C#,Xunit,Xunit.net,我有一个使用xUnit的简单测试项目。当我在GetTestData方法中返回类的新实例(newlinkconfig)时。 因此,在调试时,GetTestData方法在所有测试运行之前调用两次。但如果我返回字符串而不是类的新实例,它就可以正常工作 [Theory] [MemberData(nameof(GetTestData))] public void Test(LinkConfig config) { //Arrange var url = config.Url; //Act &

我有一个使用xUnit的简单测试项目。当我在GetTestData方法中返回类的新实例(newlinkconfig)时。 因此,在调试时,GetTestData方法在所有测试运行之前调用两次。但如果我返回字符串而不是类的新实例,它就可以正常工作

[Theory]
[MemberData(nameof(GetTestData))]
public void Test(LinkConfig config)
{ 
//Arrange
var url = config.Url;

//Act & Assert 
Assert.Equal("http://google.com", url); 
}

public static IEnumerable<object[]> GetTestData()
{  
var config = new LinkConfig { Url = "http://google.com" }; 
yield return new object[] { config }; 
}
[理论]
[成员数据(名称(GetTestData))]
公共无效测试(链接配置)
{ 
//安排
var url=config.url;
//行动与主张
断言相等(“http://google.com“,网址);
}
公共静态IEnumerable GetTestData()
{  
var config=new LinkConfig{Url=”http://google.com" }; 
返回新对象[]{config};
}

您只是通过调试器触发求值吗?i、 e.如果你有一只手表,它叫发电机等等,那么你的实际问题是什么?你说“它工作正常…”-发生了什么不正常?是的,我忘了设置问题。我无法返回简单的字符串。我需要返回一个类。但如果我返回一个类,MemberData将获得两次测试数据。如何防止它这样做?GetTestData必须调用一次。您仍然没有排除双重迭代是由使用调试器触发的。原样的代码是完全正常的,xUnit不会重复自身。但如果你有一块手表等,那么它是完全可能的-调试器使事情发生。回到问题上来——如果发生这种情况怎么办——如果有一枚导弹你只想发射一次,你可以初始化一个数组字段,并将MemberData指向该字段,等等。