Tag: 模拟自动混合

如何仅在列表中的项目的子范围上分配属性?

我想使用AutoFixture创建自定义对象列表。 我希望前N对象的属性设置为一个值,剩余部分将其设置为另一个值(或者简单地由Fixture的默认策略设置)。 我知道我可以使用Fixture.CreateMany.With ,但这Fixture.CreateMany.With一个函数应用于列表的所有成员。 在NBuilder有一些名为TheNext和TheNext (以及其他)的方法可以提供此function。 他们使用的一个例子: 鉴于Foo类: class Foo { public string Bar {get; set;} public int Blub {get; set;} } 可以像这样实例化一堆Foo : class TestSomethingUsingFoo { /// … set up etc. [Test] public static void TestTheFooUser() { var foosToSupplyToTheSUT = Builder.CreateListOfSize(10) .TheFirst(5) .With(foo => foo.Bar = “Baz”) .TheNext(3) .With(foo => foo.Bar = “Qux”) .All() […]

带有匿名值的广义Func包装等效于AutoFixture’With’

在基于AutoFixture的测试中,我试图尽可能干净地表达以下内容: 当我将传递给此方法的参数x时,匿名填写其他参数,结果是…… 以工厂方法为例: – class X { public static X Create( Guid a, Guid b, Guid c, String x, String y); 我试图表达一系列简洁的测试: 如果我为x传递null,它应该抛出 如果我为y传递null,它应该抛出 为了表达我可以说: var fixture = Fixture(); var sut = default( Func); sut = fixture.Get( ( Guid anonA, Guid anonB, Guid anonC, string anonY ) => x => X.Create( anonA, anonB, anonC, x, […]