Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何自定义AutoFixture以有时返回Null_C#_Unit Testing_Autofixture - Fatal编程技术网

C# 如何自定义AutoFixture以有时返回Null

C# 如何自定义AutoFixture以有时返回Null,c#,unit-testing,autofixture,C#,Unit Testing,Autofixture,在这个示例代码中,我想将Fixture对象配置为在一半时间内为字符串返回null void Test() { var fixture = new Fixture(); fixture.Customize<string>(x => x.FromFactory(CreateString)); var str1 = fixture.Create<string>(); //error occurs here when string sh

在这个示例代码中,我想将
Fixture
对象配置为在一半时间内为字符串返回
null

void Test()
{
    var fixture = new Fixture();

    fixture.Customize<string>(x => x.FromFactory(CreateString));

    var str1 = fixture.Create<string>();

    //error occurs here when string should come back null
    var str2 = fixture.Create<string>(); 
}

bool _createString = false;

string CreateString()
{
    _createString = !_createString;

    return _createString ? "test" : null;
}
void测试()
{
var fixture=新fixture();
fixture.Customize(x=>x.FromFactory(CreateString));
var str1=fixture.Create();
//当字符串返回null时,此处发生错误
var str2=fixture.Create();
}
bool _createString=false;
字符串CreateString()
{
_createString=!\u createString;
返回_createString?“测试”:空;
}
问题是,每当我的工厂返回
null
,我就会得到一个
invalidoOperationException

由ISpecimenBuilder返回的样本与System.String不兼容


对于在工厂中返回
null
的任何类型,都会发生这种情况。有没有办法将
AutoFixture
配置为对请求的对象返回
null

这是一个缺陷。它应该在中解决。

内部自动夹具使用Guid作为生成随机字符串的值。我将只执行这行代码
return\u createString?“test”:Guid.Empty.ToString()
@CodeNotFound
String
只是一个例子,我想要一个空字符串,而不是空字符串或空guid。我想为几种类型的对象返回null,因为它在许多测试场景中都是非常有效的测试用例。AutoFixture是一个固执己见的库,它持有的观点之一是。这看起来像一个bug。将进一步调查…修复已确认。现在可以了。谢谢你的快速周转!