问题描述
User.any_instance.stub(:name).and_return('abc','pqr','xyz')
我的代码是
users = User.where.not.(phone: nil)
users.each do |user|
name = user.name
end
对于 name 方法的所有调用,它返回 'abc'。当我尝试在“do”循环中使用“byebug”进行调试并调用方法“name”时,它按顺序返回值。但它在正常情况下无法正常工作。
解决方法
User.any_instance.stub(:name).and_return('abc','pqr','xyz')
仅当在同一实例 name
上多次调用 user
方法时,才会返回不同的值,在您的情况下,name
在 {{1} 的不同实例上调用}},这就是它总是返回 user
的原因。 Specify different return values for multiple calls