2012-05-07 4 views
44

私はScala Koansを使って作業を始めました。これは空白を入れて単位テストを行うシステムです。(この考えはRuby Koansの同様のプロジェクトをモデルにしています)テストを実行するsbtツールを起動します。Scala Koansの===(triple-equals)演算子とは何ですか?

 
[info] + ***************************************** 
[info] + 
[info] + 
[info] + 
[info] + Please meditate on koan "None equals None" of suite "AboutEmptyValues" 
[info] + 
[info] + 
[info] + 
[info] + ***************************************** 

を...ので、あなたは、このユニットテストを見に行くと、それは言う:、それは訓戒

 
test("None equals None") { 
    assert(None === __) 
} 

...と、瞑想の後、あなたが入力する必要があることを実感しますこのような空白:

 
test("None equals None") { 
    assert(None === None) 
} 

...そして、次の単体テストに移ります。

私の質問は、この===は何ですか?私はそれをどこでも見つけることができない。これはScala Koansプロジェクト自体で定義されているDSL演算子ですか? ScalaTestフレームワークの一部ですか?またはScalaで適切なのでしょうか?

答えて

70

これは、ScalaTestのトリプルイコール演算子です。このページをご覧ください:Getting Started with FunSuite。それは言う:

ScalaTestあなたはScalaのアサーションの構文を使用することができますが、トリプル はあなたに、より良いエラーメッセージを与えるためにオペレータ(===)に等しい定義します。次 コードがあなたにアサーションが失敗したことのみを示すエラー与えるだろう:

assert(1 == 2) 

をあなたに多くの有益なエラー メッセージを与えるだろう代わりに三重の等号を使用し、「1は等しい2なかった」:

assert(1 === 2) 
関連する問題