Nol*_*nDC 20 ruby unit-testing ruby-on-rails factory-bot
最近我从fixtures切换到factory_girl来测试我的Ruby on Rails应用程序.如果我运行rake test:units,要在my/units目录中运行测试,它们都运行完美.如果我使用rake test:functionals运行我的功能测试(在我的/ functional目录中),情况也是如此.
但是,如果我只是运行rake测试,同时运行我的单元和功能测试,我的验证将在第二组测试中失败(在这种情况下是功能的),并显示消息"验证失败:名称已被采用".
我相信这是由功能测试创建的,这些参数创建的参数与在单元测试中创建的对象具有相同的参数 - 这使我相信在单元测试和功能测试之间不会清除测试数据库.
我使用factory_girl的序列来为对象提供唯一的属性,这意味着factory_girl在测试之间被重置,而数据库则没有.我该怎么做才能解决这个问题?有没有办法在我的两个测试包之间清除数据库?
Vik*_*ary 12
试着写下你的 test/test_helper.rb
eval IO.read(File.expand_path(File.dirname(__FILE__) + "/../Rakefile"))
class Test::Unit::TestCase
....
#db:test:prepare won't work, don't know why,
#as DROP DATABASE won't execute (me on PostgreSQL).
#even if I write,
#ActiveRecord::Base.connection.disconnect!
Rake::Task["db:reset"].invoke
end
Run Code Online (Sandbox Code Playgroud)
这不是推荐的解决方案.使测试更慢,但有效.
| 归档时间: |
|
| 查看次数: |
16117 次 |
| 最近记录: |