Ruby かいてて些細なミスでハマったことを書いておきます。その2。

describe 'Hoge' do
  it do
    expect ('hoge').to eq('hoge')
  end
end

expect ('hoge') のところの括弧の前にスペースが入っているのが問題です。 正しくは

describe 'Hoge' do
  it do
    expect('hoge').to eq('hoge')
  end
end

'hoge'にto というメソッドがない、というエラーが出るので気づくのですが + がないというエラーになっててハマった。

解説

expect('hoge').to eq('hoge')expect('hoge').to(eq('hoge')) と等価です。 expect ('hoge').to eq('hoge')expect('hoge'.to(eq('hoge'))) と等価です。

to は expect の戻り値に対して使うメソッドです。 空白をいれてしまうと、expect ではなく ‘hoge’ に対し to を呼んでしまいます。

関連記事