0

簡単に言えば、クラスメソッドを呼び出すインスタンスメソッドを持つクラスがあり、インスタンスメソッドを実行するときにクラスメソッドが呼び出されていることをRSpecを使用してテストしたいと思います。だから、例えば

class Test
  def self.class_method
    #do something
  end

  def instance_method
    #do stuff
    self.class.class_method
  end
end

RSpecで、Test.should_receive(:class_method)を試しましたが、それは奇妙なことをしているようで、テストが奇妙な動作を返します。それが私が使用しているはずのものである場合、おそらくRSpecは古くなっていますか?RSpec2.7.0を使用しています。ありがとう!

4

1 に答える 1

1

クラスメソッドが何をしているのかを本当に気にせず、それが呼び出されるだけの場合は、次のようにすることができます。

describe Test do
  context '#instance_method' do
    it 'should call the class method' do
      Test.should_receive(:class_method)
      Test.new.instance_method
    end
  end
end
于 2012-08-08T03:11:27.497 に答える