Rails未经我的许可使用固定装置

时间:2017-09-10 15:51:18

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

我从一个简单的测试开始:

class UserTest < ActiveSupport::TestCase
  test 'should not create user without email' do
    user = User.new
    assert_not user.save
  end
end

Rails自动生成一些灯具:

one:
  email: MyString
  login_token: MyString
  token_generated_at: 2017-09-10 17:24:55

two:
  email: MyString
  login_token: MyString
  token_generated_at: 2017-09-10 17:24:55

所以你可以看到我没有使用任何灯具进行测试。但是在执行测试时,Rails会抛出异常:

Error:
UserTest#test_should_not_create_user_without_email:
ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: UNIQUE constraint failed: users.email: INSERT INTO "users" ("email", "login_token", "token_date", "created_at", "updated_at", "id") VALUES ('MyString', 'MyString', '2017-09-10 17:24:55', '2017-09-10 15:48:11.483364', '2017-09-10 15:48:11.483364', 298486374)

起初我认为我可以简单地删除灯具。但是后来应该有固定装置,例如非独特的电子邮件。

1 个答案:

答案 0 :(得分:0)

为了加载灯具,Rails不需要你的权限。来自documentation

  

测试环境将自动加载所有灯具   每次测试前的数据库。为了确保数据的一致性,   环境在运行负载之前删除了灯具。