2017-07-05 62 views
-1

メソッドfoo1がfooから呼び出されたかどうかをテストします。ここに私のコードはrspec:メソッドからメソッドが呼び出されたかどうかをテストします。

class C 

    def foo1 
     puts "called" 
    end 

    def foo 
     puts foo1 
    end 

end 




describe C 
    it "called" 
      expect(C.new.foo).to receive(:foo1) 
    end 
end 

ですが、私はラインexpect(foo_).to receive(:foo1)上のエラーの下に取得しています:ここで

syntax error, unexpected keyword_end, expecting end-of-input 
+2

あなたのブロックを完成させるには 'do'が必要です。それは "do"と呼ばれます – treiff

+2

'C do'の場合と同様に –

+0

あなたの質問は何ですか? – sawa

答えて

0

はあなたのコードの修正バージョンです:

class C 
    def foo1 
    puts "called" 
    end 

    def foo 
    puts foo1 
    end 
end 



describe C do 
    it "called" do 
    c = C.new 
    expect(c).to receive(:foo1) 
    c.foo 
    end 
end 
  • describeit有効な言語にするには、ブロックに完全なdo ... end構文が必要です。
  • あなたの期待を修正しました。コードを読むことはかなり自明ですが、基本的に正しいオブジェクトに対してあなたの期待を定義する必要があります。
  • Style-guide compliance)インデントレベルごとに2つのスペースを使用します(別名ソフトタブ)。ハードなタブはありません。
関連する問題