0
class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.timestamps
    end

    # Create sample User 
    User.create  :name => "TestUser"    
  end
end

运行rake db:createrake db:migrate命令时

在开发数据库中,它创建示例用户,但不在测试数据库中。我也希望这个用户在测试数据库中。任何原因?

也试过了rake db:migrate RAILS_ENV=test

4

2 回答 2

1

首先,您应该运行以下命令rake db:test:prepare以“准备”测试数据库。

db/seeds.rb最后,如果您希望在数据库中添加新记录,我建议使用以下文件。

db/seeds.rb文件中:

User.create(name: "TestUser")

跑:

rake db:seed
rake db:seed RAILS_ENV=test # for test env
于 2013-06-25T05:56:22.217 回答
0

如果您正在寻找测试用户,为什么不创建一个夹具或使用 rspec 来测试这样的东西呢?上面的代码是不好的做法。我会做这样的事情

迁移文件。

  def self.up
    create_table :users do |t|
      t.string :name
      t.timestamps
    end 
  end

根据您的测试堆栈,我会设置一个像这样的夹具(yml 夹具

david:
 name: David Smith

您还可以将 rspec 与 factory girl 一起使用,这使得在 Rails 中的测试更容易。

于 2013-06-25T05:38:24.520 回答