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:create
和rake db:migrate
命令
在开发数据库中,它创建示例用户,但不在测试数据库中。我也希望这个用户在测试数据库中。有什么原因吗?
还尝试了rake db:migrate RAILS_ENV=test
。
答案 0 :(得分: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
答案 1 :(得分:0)
如果你想测试用户为什么不创建一个灯具或使用rspec来测试这样的东西?上面的代码是不好的做法。我会做这样的事情
迁移文件。
def self.up
create_table :users do |t|
t.string :name
t.timestamps
end
end
根据你的测试堆栈,我会设置一个像这样的夹具(yml fixture)
david:
name: David Smith
您还可以将rspec与工厂女孩一起使用,这使得在rails中测试更容易。