Jus*_*tin 6 rspec spork ruby-on-rails-3 factory-bot
我正在尝试使用Spork将Factory Girl用于RSpec.每当我在没有spork的情况下运行测试时,一切都会通过,但是当我使用Spork运行它时,所有试图创建依赖于另一个工厂的工厂实例的测试都会失败.例如:
3) Invitation has a correctly formed body
Failure/Error: request = FactoryGirl.create(:request, ....)
NoMethodError:
undefined method `user=' for #<Request:0x007f86b6a87890>
Run Code Online (Sandbox Code Playgroud)
我的factories.rb代码看起来大致如此
FactoryGirl.define do
factory :user do
sequence(:first_name) { |n| "first_name#{n}" }
sequence(:last_name) { |n| "last_name#{n}" }
end
factory :request do
association :user, :factory => :user, :is_walker => false
end
end
Run Code Online (Sandbox Code Playgroud)
我的代码似乎只有在存在关联时才会中断,然后它会尝试在上面调用setter :user.为什么会发生这种情况?
这是我正在使用的版本
gem 'rails', '3.0.7'
gem 'rspec-rails', '2.6.1'
gem 'spork', '0.9.0.rc5'
gem 'factory_girl_rails', '1.0'
Run Code Online (Sandbox Code Playgroud)
你有require 'factory_girl_rails你的Spork.each_run块?
我在我的gemfile中使用了以下内容:
gem "factory_girl_rails", :require => false
Run Code Online (Sandbox Code Playgroud)
在spec_helper.rb中:
Spork.each_run do
require 'factory_girl_rails'
FactoryGirl.factories.clear
FactoryGirl.reload
end
Run Code Online (Sandbox Code Playgroud)
不确定它是否会有所帮助,但它值得一试.
是否真的有任何具有关联的测试或任何尝试创建 :request 工厂的测试?我从未使用过 spork,但事实上它在没有它的情况下也能工作,这让我想知道 spork/factory_girl 是否正在争夺“请求”......值得研究。
| 归档时间: |
|
| 查看次数: |
1083 次 |
| 最近记录: |