web-dev-qa-db-ja.com

Scala Koansの===(三重等号)演算子とは何ですか?

Scala Koans を使用して作業を開始しました。これは、空白を埋める必要がある単体テストのスイートを中心に構成されています(このアイデアは、同様のRuby Koansプロジェクト。)テストを実行するsbtツールを起動すると、次のように警告されます。

 [info] + ******************************************** 
 [info] + 
 [info] + 
 [info] + 
 [info] +スイート "AboutEmptyValues"の "None equals None"について瞑想してください
 [info] + 
 [info] + 
 [info] + 
 [info] + ************** *************************** 

...そして、あなたはこのユニットテストを見に行きます、そしてそれは言います:

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

...そして、瞑想の後、あなたはこのように空白を埋めるべきだと気づきます:

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

...そして次の単体テストに進みます。

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

51
pohl

これは、 ScalaTest からの三重等号演算子です。このページをご覧ください: Getting Started with FunSuite 。それは言います:

ScalaTestでは、Scalaのアサーション構文を使用できますが、トリプルイコール演算子(===)を定義して、より良いエラーメッセージを提供します。次のコードは、アサーションが失敗したことのみを示すエラーを表示します。

assert(1 == 2)

代わりにトリプルイコールを使用すると、より有益なエラーメッセージ「1は2に等しくありませんでした」が表示されます。

assert(1 === 2)
83
rolve