相关疑难解决方法(0)

使用AutoFixture实例化[immutable]对象时指定[readonly]属性值[via ctor args]

我的测试要求我将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>())).

有没有办法只为不可变对象指定含义属性的值?

c# unit-testing immutability autofixture

8
推荐指数
1
解决办法
2141
查看次数

标签 统计

autofixture ×1

c# ×1

immutability ×1

unit-testing ×1