我知道这可能非常简单,我想知道如何测试一个方法在rails中只调用一次?
例如,我有一个模型Customer,它有一个方法set_account。我想知道在一些代码之后,它也会运行这个方法但只有一次。我怎样才能做到这一点?
我正在使用rspec。
答案 0 :(得分:2)
at_least_once就是你在摩卡中的表现方式。
我相信使用rspec你只需在末尾添加一个.once
class Account
attr_accessor :logger
def open
logger.account_opened
end
end
describe Account do
context "when opened" do
it "logger#account_opened was called once" do
logger = double("logger")
account = Account.new
account.logger = logger
logger.should_receive(:account_opened).once
account.open
end
end
end
该示例来自here