【发布时间】:2013-08-20 09:53:34
【问题描述】:
我有一个类,它是其他一些专门从事该行为的类的基础:
class Task < ActiveRecord::Base
attr_accessible :type, :name, :command
validates_presence_of :type, :name, :command
# some methods I would like to test
end
CounterTask 类继承自 Task
class CounterTask < Task
end
这一切正常,直到我尝试测试基类,因为它必须有一个类型。
FactoryGirl.define do
factory :task do
sequence(:name) { |n| "name_#{n}" }
sequence(:command) { |n| "command_#{n}" }
end
end
您将如何测试超类的基本功能?
【问题讨论】:
-
不应该编写测试以便测试功能而不是实现吗?在这种情况下,这意味着您将测试
CounterTask是否具有从Task获得的属性和其他内容。如果您更改实施,例如不再使用 STI。如果您的CounterTask保持相同的行为,您的测试仍然可以成功。 -
这是一个很好的观点。我只是想如果我先测试基本功能然后测试子类,我会在测试中节省一些重复......也许这可能是我的问题的解决方案。
标签: ruby-on-rails ruby rspec factory-bot sti