web-dev-qa-db-fra.com

Quel est l'opérateur === (triple-égal) dans Scala Koans?

J'ai commencé à me frayer un chemin à travers le Scala Koans , qui est organisé autour d'une suite de tests unitaires avec des blancs que l'on doit remplir. (Cette idée a été modelée d'après un Ruby similaire) Projet Koans.) Vous démarrez l'outil sbt en exécutant un test, et il avertit:

 [info] + ***************************************** 
 [info] + 
 [info] + 
 [info] + 
 [info] + S'il vous plaît méditez sur koan "Aucun n'est égal à Aucun" de la suite "AboutEmptyValues" 
 [info] + 
 [info] + 
 [info] + 
 [info] + ************** *************************** 

... et donc vous allez regarder ce test unitaire et il dit:

 test ("Aucun n'est égal à Aucun") {
 assert (Aucun === __) 
} 

... et, après la méditation, vous réalisez que vous devez remplir le blanc comme ceci:

 test ("Aucun n'est égal à Aucun") {
 assert (Aucun === Aucun) 
} 

... puis il passe au test unitaire suivant.

Ma question, cependant, est quel est cet opérateur ===? Je n'arrive pas à le trouver nulle part. S'agit-il d'un opérateur DSL défini dans le projet Scala Koans lui-même? Ou fait-il partie du cadre ScalaTest? Ou dans Scala bon?

51
pohl

Il s'agit de l'opérateur triple égal de ScalaTest . Jetez un œil à cette page: Mise en route avec FunSuite . Ça dit:

ScalaTest vous permet d'utiliser la syntaxe d'assertion de Scala, mais définit un opérateur triple égal (===) pour vous donner de meilleurs messages d'erreur. Le code suivant vous donnera une erreur indiquant uniquement qu'une assertion a échoué:

assert(1 == 2)

L'utilisation de triple égal à la place vous donnerait le message d'erreur le plus informatif, "1 n'était pas égal à 2":

assert(1 === 2)
83
rolve