2016-11-15 36 views
0

我有以下類的結構:rspec的期望收到不工作

class A 
    def process(processor) 
    processor.process_x 
    end 
end 

class Processor 
    def process_x 
    end 
end 

和下面的測試:

context "when process is called" do 
    object_a = A.new 
    processor = Processor.new 

    it "calls processor.process_x" do 
    object_a.process(processor) 
    expect(processor).to receive(:process_x) 
    end 
end 

但試驗未能保持。我甚至把byebug,看到處理器的process_x方法被稱爲

我該如何解決這個問題?

回答

6

我看到我的問題,看完後this我意識到我應該先加的期望,然後調用方法:

context "when process is called" do 
    object_a = A.new 
    processor = Processor.new 

    it "calls processor.process_x" do 
    expect(processor).to receive(:process_x) *** HERE 
    object_a.process(processor) *** HERE 
    end 
end