我想定制AutoFixture的创建时行为,这样我可以在生成和分配灯具的属性后设置一些相关对象.
例如,假设我有一个自定义a的方法,User因为IsDeleted对于某组测试,它的属性总是必须为false:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsDeleted { get; set; }
}
public static ObjectBuilder<User> BuildUser(this Fixture f)
{
return f.Build<User>().With(u => u.IsDeleted, false);
}
Run Code Online (Sandbox Code Playgroud)
(我交回ObjectBuilder测试,以便在必要时可以进一步定制夹具.)
我想做的是Id在创建时自动将该用户与匿名集合相关联,但我不能这样做,因为Id当我将返回值返回到单元测试时尚未生成正确.这是我正在尝试做的事情:
public static ObjectBuilder<User> BuildUserIn(this Fixture f, UserCollection uc)
{
return f.Build<User>()
.With(u => u.IsDeleted, false);
.AfterCreation(u =>
{
var relation = f.Build<UserCollectionMembership>()
.With(ucm => ucm.UserCollectionId, …Run Code Online (Sandbox Code Playgroud)