2012-05-07 21 views
44

Empecé a trabajar en el Scala Koans, que se organiza en torno a un conjunto de pruebas unitarias con espacios en blanco que se deben completar (esta idea se modeló a partir de un proyecto Ruby Koans similar). Se inicia la herramienta sbt ejecutando una prueba , y advierte:¿Cuál es el operador === (triple-igual) en Scala Koans?

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

... y por lo que ir a buscar a esta unidad de prueba y dice:

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

... y, después de la meditación, se da cuenta de que hay que rellenar el espacio en blanco de esta manera:

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

... y luego pasará a la siguiente prueba unitaria.

Mi pregunta, sin embargo, es ¿qué es este operador ===? Parece que no puedo encontrarlo en ningún lado. ¿Este es un operador de DSL definido en el proyecto de Scala Koans? ¿O es parte del marco ScalaTest? ¿O en Scala?

Respuesta

70

Este es el operador triple-equal de ScalaTest. Eche un vistazo a esta página: Getting Started with FunSuite. Dice:

ScalaTest le permite utilizar la sintaxis de la afirmación de Scala, sino que define un triple operador de igualdad (===) para darle mejores mensajes de error. El siguiente código le daría un error que indica solamente que una afirmación no se pudo:

assert(1 == 2) 

Usando iguales triples lugar le daría el mensaje más informativo de error , "1 no es igual a 2":

assert(1 === 2) 
Cuestiones relacionadas