【发布时间】:2016-12-02 04:02:01
【问题描述】:
假设我有一个简单的工厂:
FactoryGirl.define do
factory :state do
name Faker::Address.state_abbr
end
end
例如,我们使用的大多数单元测试都是“可以”的,例如有一个随机的state_abbr。
但是,我有一些依赖于下拉列表的集成测试(在表单中选择一个状态),因为我不知道会生成什么,所以我无法具体选择它。
因为做了这样的事情:
@state = FactoryGirl.create(:state, state_abbr: 'WA')
在我的 Capybara 集成规范中似乎不起作用。有什么方法可以覆盖伪造者正在生成的内容吗?
(因为我收到类似的错误,例如:
失败/错误:@state = FactoryGirl.create(:state, state_abbr: 'WA') 无方法错误: # 的未定义方法 `state_abbr='
用“名称:“XX”改变缩写。
作为参考,我不能只是去改变工厂,因为许多其他单元测试都依赖它,这是用于新的集成测试。
【问题讨论】:
-
@state = FactoryGirl.create(:state, state_abbr: 'WA')不起作用是什么意思?当然不是,你在工厂里设置了name。 -
:facepalm: 时刻由我确定哈!
-
别担心,发生了!
标签: ruby-on-rails capybara faker