Есть ли способ создания экземпляра типа с тестовыми данными?
У меня есть тип и я хочу создать его экземпляр с тестовыми данными.
Я знаю, что фреймворки, такие как NBuilder или AutoFixture, могут создавать экземпляры типов, которые известны во время разработки (<T>
). Могут ли эти платформы создать экземпляр на основе типа, который известен только во время выполнения (Type
)?
В конце я хочу сделать что-то вроде:
var value = Builder.Create(type);
var constant = Expression.Constant(value, type);
1 ответ
Решение
AutoFixture действительно поддерживает это. Но, насколько я знаю, для этого нет удобных методов расширения.
Следующий общий код:
var value = fixture.CreateAnonymous<MyType>();
будет выглядеть так с типом, известным только во время выполнения:
var context = new SpecimenContext(fixture.Compose());
var value = context.Resolve(new SeededRequest(typeof(MyType), null))