我有以下两个课程:
public class Blog
{
public Blog()
{
Posts = new HashSet<Post>();
}
public int BlogId { get; set; }
public string Name { get; set; }
public ICollection<Post> Posts { get; private set; }
}
public class Post
{
public int PostId { get; set; }
public int BlogId { get; set; }
public string Uri { get; set; }
public Blog Blog { get; set; }
}
我尝试使用AutoFixture生成我想在测试中使用的样本数据。
var blogs = new List<Blog>(new Fixture().Build<Blog>()
.Without(x => x.BlogId)
.CreateMany(10));
但是帖子的收藏集为空。
问题是我如何使用自动修复生成博客和相应的帖子,比方说,每10个博客就有10个帖子。
答案 0 :(得分:1)
但是帖子的收藏集为空。
不完全; Posts
集合为空,因为它们在Blog
构造函数中初始化为空HashSet。
如何使用自动修复功能生成博客和相应的帖子
在fixture.AddManyTo
块中使用Do
:
var fixture = new Fixture();
var blogs = fixture.Build<Blog>()
.Without(b => b.BlogId)
.Do(b => fixture.AddManyTo(b.Posts, 10))
.CreateMany(10);
这将创建10个Blog
对象,每个对象在Post
集合中具有10个Posts
对象。