Rails:测试一次只调用一次的方法

时间:2014-05-14 16:04:19

标签: ruby-on-rails ruby rspec integration-testing

我知道这可能非常简单,我想知道如何测试一个方法在rails中只调用一次?

例如,我有一个模型Customer,它有一个方法set_account。我想知道在一些代码之后,它也会运行这个方法但只有一次。我怎样才能做到这一点?

我正在使用rspec。

1 个答案:

答案 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