Rails 5 Fixtures - 如何在使用默认值时避免使用唯一键约束?

时间:2016-09-20 10:29:31

标签: ruby-on-rails ruby automated-tests ruby-on-rails-5 fixtures

考虑下面写的夹具。

问题:执行时,在创建invalid_email_user时会出现唯一键约束。

原因:默认值只执行一次,当创建第二个用户时,违反了唯一的索引数据库约束。

通过使用$ LABEL,我能够避免对电子邮件的唯一约束,但对于像这种情况那样的令牌生成器方法,这是不可能的。

DEFAULTS: &DEFAULTS
  email: $LABEL@test.com
  authentication_token: <%= Devise.friendly_token %>

user:
  <<: *DEFAULTS

invalid_email_user:
  <<:*DEFAULTS
  email: test.com

我可以想到有几个绕道:

  1. 为每个用户重复此方法(但我希望尽可能保持DRY)
  2. 切换到FactoryGirl
  3. 然而,由于我正在尝试Rails 5默认设置,因此这些不是我追求的解决方案。必须有一些我不知道的东西,因为这肯定是一种非常常见的情况?我可以像在FactoryGirl那样将块传递给夹具吗?

0 个答案:

没有答案