我想知道我是否应该将单元测试编写为ActiveRecord
添加的行为以及迁移到我的模型。
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.timestamps
end
end
end
我是否应该编写单位来检查created_at
updated_at
id
是否存在?
我使用RSpec。
答案 0 :(得分:0)
如果系统中的其他对象依赖于现有生成的方法,则应该对现有对象进行单元测试。 如果系统中的默认值和格式设置很重要,那么也应对其进行测试。
expect(User.new).to respond_to(:created_at, :updated_at)
答案 1 :(得分:0)
好吧,你肯定不想测试timestamps
是否真的有效。这是Rails API的一部分。
你真的要测试什么?数据库中是否存在created_at
,updated_at
和id
?您应该测试使用这些DB列的方法。
Rails称它们为单元测试,但“单元”是业务逻辑,与数据库交互。例如,获取最近更新的User
:
class User
def self.most_recently_updated_user
order("updated_at DESC").first
end
end
此测试取决于现有的updated_at
字段。
简而言之:不。