52

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

[情報] + ****************************************
[情報] +  
[情報] +  
[情報] +  
[情報] + スイート「AboutEmptyValues」の公案「None equals None」について熟考してください
[情報] +  
[情報] +  
[情報] +  
[情報] + ****************************************

...そして、この単体テストを見ると、次のように書かれています。

test("None equals None") {
  アサート (なし === __)
}

...そして、瞑想の後、次のように空白を埋める必要があることに気付きます。

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

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

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

4

1 に答える 1

90

これはScalaTestの三重等号演算子です。このページを見てください: FunSuite を始めましょう。それは言います:

ScalaTest では、Scala のアサーション構文を使用できますが、3 つの等号演算子 (===) を定義して、より適切なエラー メッセージを提供します。次のコードでは、アサーションが失敗したことのみを示すエラーが表示されます。

assert(1 == 2)

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

assert(1 === 2)
于 2012-05-07T21:44:50.353 に答える