gpt4 book ai didi

.net - 是否可以使用 AutoFixture CreateMany 创建交替的 bool 值?

转载 作者:行者123 更新时间:2023-12-01 21:47:16 24 4
gpt4 key购买 nike

我正在尝试创建一个数据有一些差异的对象列表。字符串等类型很好,因为它们每次都是随机的,但是我发现 bool 在 CreateMany() 生成的集合中的每个对象中始终具有相同的值。

示例类,用于演示:

public class FooBar
{
public string Name { get; set; }
public bool IsFoo { get; set; }
public bool IsBar { get; set; }
}

var fooBars = new Fixture().Build<FooBar>().CreateMany(5).ToList();

// Result
fooBars[0].IsFoo; // true
fooBars[1].IsFoo; // true
fooBars[2].IsFoo; // true
...

下面的内容可以实现吗?

// Wanted result
fooBars[0].IsFoo; // true
fooBars[1].IsFoo; // false
fooBars[2].IsFoo; // true
fooBars[3].IsFoo; // false
...

干杯!

最佳答案

AutoFixture 确实为您提供交替 bool 值,但您在这里体验到的是共振效果,因为您还拥有 IsBar 属性;对于创建的每个 FooBar 实例,AutoFixture 将在 truefalse 之间交替,因此始终将 IsFoo 设置为 trueIsBarfalse

确定性交替可能不是最适合这种情况的。随机化 bool 值可能会更好。一种方法是这样的:

var r = new Random();
fixture.Register<bool>(() => r.NextDouble() < 0.5);

关于.net - 是否可以使用 AutoFixture CreateMany 创建交替的 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24123392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com