我的方法大致如下:
def some_method(....)
user = User.where("....").first
if !user.nil?
if ..
user.delete
elsif
user.update_attributes(...)
else
new_user = User.new(...)
new_user.save!
end
end
分配分配所以我必须为每个案例创建一些测试。
如何创建模拟对象以确保调用特定方法?
如何区分测试中的各种对象?
e.g。
user = User.where("....")
和
new_user = User.new("...")
new_user.save!
我必须以某种方式测试对where的调用,并且有时返回nil,有时返回用户对象。我必须测试是否保存!被调用并返回true。 并且还测试特定对象上的删除(来自where子句的删除)。
答案 0 :(得分:1)
您可以使用RSpec存储类方法,例如
User.should_receive(:where).and_return([])