В этом примере кода я хочу настроить объект 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;
}
Проблема в том, что всякий раз, когда моя фабрика возвращает null
, я получаю InvalidOperationException
:
Образец, возвращаемый оформленным ISpecimenBuilder, несовместим с System.String.
Это происходит для любого типа, где я возвращаю null
внутри фабрики. Есть ли способ настроить AutoFixture
для возврата null
для запрошенного объекта?
return _createString ? "test" : Guid.Empty.ToString();
- person CodeNotFound   schedule 10.11.2015String
был просто примером, и мне нужна нулевая строка, а не пустая строка или пустой идентификатор. Я хочу вернуть null для нескольких типов объектов, так как это очень правильный тестовый пример во многих тестовых сценариях. - person Nathan A   schedule 10.11.2015