我想知道是否应该为ActiveRecord
添加的行为和迁移到我的模型。
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.timestamps
end
end
end
我应该写单元以检查created_at
updated_at
id
是否存在?
我使用Rspec。
如果系统中的其他对象取决于生成的现有方法,则应该对其进行单位测试。如果您的系统中的默认和格式很重要,则应该对其进行测试。
期望(user.new).to recond_to(:create_at,:updated_at)
好吧,您绝对不想测试timestamps
是否实际工作。那是Rails API的一部分。
您想测试什么?DB中存在created_at
,updated_at
和id
?您应该测试使用这些DB列的方法。
Rails称它们为单位测试,但"单元"是业务逻辑,再加上与DB的互动。例如,获取最近更新的User
:
class User
def self.most_recently_updated_user
order("updated_at DESC").first
end
end
此测试取决于现有的updated_at
字段。
简而言之:否。