RSpec测试是否在模块上调用方法

时间:2014-08-18 22:27:57

标签: ruby-on-rails ruby rspec

我在Rails中使用RSpec(2.14)并尝试测试是否在模块上调用了一个方法,而且我没有找到任何可用的传统方法。

module TestModule
  self.method_to_test
  end
end

我知道需要在模块上调用stubs而不是stub,但我似乎无法弄清楚如何测试have_receivedreceiveshould_receive方法。

1 个答案:

答案 0 :(得分:0)

我知道的一种方式是:

module TestModule
  self.method_to_test
  end
end

你指的是test_module_spec.rb:

describe "TestModule" do
  let(:dummy_class) do
    Class.new do
      include TestModule

      def to_s
        "Dummy class"
      end
    end
  end

  context 'class methods' do
    subject { dummy_class }

    it { should respond_to(:method_to_test)}
    it { should be_a(TestModule) }
    its (:to_s) { should eq("Dummy class") }
  end

end

我希望它有所帮助。