考虑下面写的夹具。
问题:执行时,在创建invalid_email_user时会出现唯一键约束。
原因:默认值只执行一次,当创建第二个用户时,违反了唯一的索引数据库约束。
通过使用$ LABEL,我能够避免对电子邮件的唯一约束,但对于像这种情况那样的令牌生成器方法,这是不可能的。
DEFAULTS: &DEFAULTS
email: $LABEL@test.com
authentication_token: <%= Devise.friendly_token %>
user:
<<: *DEFAULTS
invalid_email_user:
<<:*DEFAULTS
email: test.com
我可以想到有几个绕道:
然而,由于我正在尝试Rails 5默认设置,因此这些不是我追求的解决方案。必须有一些我不知道的东西,因为这肯定是一种非常常见的情况?我可以像在FactoryGirl那样将块传递给夹具吗?