rake specが warning: useless use of == in void context
rspecのitの中で最後の文以外でsholud == を使うと
warning: useless use of == in void context
のWarningが出力される。
==が返すtrue,falseを使用していないよ、=と間違っている
んじゃない?というrubyの文法チェッカーの警告だと思われる。
別にWarningだけで、テストには影響ないのでいいのだが、ちょっと気持ち悪い。
気にしたいWarningを見落とすかもしれないし、できれば出力しないようにしたい。
should eqlだと上記warningがでないことを発見!
厳密に言うと==とeqlは再定義を行えば、違う可能性もあるけど、そうなることなんて
ほとんどないだろうから、これからは
should eql
で行こう!
| 固定リンク
「ruby」カテゴリの記事
- windowsでgemで入れたコマンドがすべてin `load': no such file to load になる(2009.10.31)
- rake specが warning: useless use of == in void context(2009.06.19)
- WindowsでSelenium RC + Rspec(2009.06.06)
- ログからバイナリファイル変換(2009.05.17)
- rubyでscpによるリモートホストのファイルのバックアップ(2008.11.29)


コメント
はじめまして。
わたしは、
xxxx.should == pppp and
xxxx.should == qqqq
のように最後以外の末尾に and を書く、というのを試しています。
and は、演算子の優先順位的に最低レベルなので、きっと問題ないはず……
投稿: さく | 2009年6月24日 (水) 19時14分
コメントありがとうございます。
useless use of ==で検索した時にさくさんのandの記述を見つけてました。
andだと最初のマッチャーの失敗しか表示できないのではと思ってたらそもそもandでつなげなくても最初のマッチャーの失敗しか表示しないんですね。
もし厳密に==を使わなければいけない場合は、andでつなくのはいいアイデアだと思います。
ただ、andを重ねて書いていくのがちょっとめんどくさいかなと感じて使っていませんでしが、どっちも知ってると使い分けができそうです。
ありがとうございました。
投稿: takeshy | 2009年6月24日 (水) 19時44分