Mar*_*ark 30 ruby rspec ruby-on-rails sti factory-bot
我有一个类,这是一些专门处理行为的其他类的基础:
class Task < ActiveRecord::Base
attr_accessible :type, :name, :command
validates_presence_of :type, :name, :command
# some methods I would like to test
end
Run Code Online (Sandbox Code Playgroud)
CounterTask类继承自Task
class CounterTask < Task
end
Run Code Online (Sandbox Code Playgroud)
这一切都正常,直到我尝试测试基类,因为它必须有一个类型.
FactoryGirl.define do
factory :task do
sequence(:name) { |n| "name_#{n}" }
sequence(:command) { |n| "command_#{n}" }
end
end
Run Code Online (Sandbox Code Playgroud)
您如何测试超类的基本功能?
ema*_*axi 63
您可以声明工厂的定义如下:
FactoryGirl.define do
factory :task, class: 'Task' do
shop
currency
value 10
end
factory :counter_task, parent: :task, class: 'CounterTask' do
end
end
Run Code Online (Sandbox Code Playgroud)
现在,您可以测试从其自己的工厂隔离的基类,并为每个继承的类测试相同的基类.
| 归档时间: |
|
| 查看次数: |
8999 次 |
| 最近记录: |