我的测试要求我将Response不可变Rsvp对象(见下文)的属性设置为特定值.
public class Rsvp
{
public string Response { get; private set; }
public Rsvp(string response)
{
Response = response;
}
}
Run Code Online (Sandbox Code Playgroud)
我最初尝试使用Build<Rsvp>().With(x => x.Rsvp, "Attending"),但意识到这只支持可写属性.
我替换了Build<Rsvp>().FromFactory(new Rsvp("Attending")).这可行,但对于更复杂的对象来说很麻烦,因为它们与某些属性无关.
例如,如果Rsvp对象具有CreatedDate属性,则实例化对象的这种方法将迫使我编写Build<Rsvp>().FromFactory(new Rsvp("Attending", fixture.Create<DateTime>())).
有没有办法只为不可变对象指定含义属性的值?