首页 > 解决方案 > 未在 Rails 测试控制台中加载夹具

问题描述

我开始为新的 Rails 6 应用程序编写测试,并试图加载固定装置。这是针对用户模型的,我编写了自己的(从头开始验证)身份验证。以下是相关文件:

../test/fixtures/users.yml

one:
  email: MyString
  password_digest: "test"
  first_name: "John"
  last_name: "Smith"

模型/用户.rb

class User < ApplicationRecord
  before_create { generate_token(:auth_token) }

  has_secure_password

  #validations section
  validates :first_name, :last_name, presence: true
  validates :email, presence: true, uniqueness: true

我可以毫无错误地运行rails db:fixtures:load,但是当我在测试环境中加载控制台时,我得到:

 rails c -e test
Running via Spring preloader in process 15677
Loading test environment (Rails 6.1.3.1)
 :001 > User.all
   (0.5ms)  SELECT sqlite_version(*)
  User Load (0.2ms)  SELECT "users".* FROM "users" /* loading for inspect */ LIMIT ?  [["LIMIT", 11]]
 => #<ActiveRecord::Relation []>

我错过了什么?

标签: ruby-on-rails

解决方案


我上面的夹具很好,我只需要先将夹具加载到测试数据库中rails db:fixtures:load RAILS_ENV=test


推荐阅读