课程User
有一个电话has_one_time_password(encrypted: true)
我想测试User类是否有该调用。
class User < ApplicationRecord
#...
has_one_time_password(encrypted: true)
#..
end
我试过了
expect(User).to receive(:has_one_time_password).with(encrypted: true)
但我收到消息expected: 1, received: 0
答案 0 :(得分:0)
我相信,当您上面expect(User)...
运行时,class User < ApplicationRecord ... end
已经加载到内存中,因为您的 rails_helper.rb 在顶部有一条线它:
require File.expand_path("../../config/environment", __FILE__)
。
因此,除非您手动加载它,否则您将无法捕获它:
expect(User).to receive(:has_one_time_password).with(encrypted: true)
require 'user'
P.S。尚未测试过这个。此外,就个人而言,我宁愿测试“行为”而不是测试代码本身,所以也许我会写一个关于has_one_time_password
实际做什么行为的测试