wordspec tutorial test flatspec failure example unit-testing scala scalatest

unit-testing - flatspec - scalatest tutorial



En ScalaTest hay alguna diferencia entre `should`,` can`, `must` (1)

Acabo de empezar a usar ScalaTest y me gusta bastante.

Con solo leer los documentos , hasta ahora no he podido averiguar si hay alguna diferencia sustancial entre las cláusulas de can , should y must para un FlatSpec .

En particular, me pregunto si un fracaso must tratarse de manera diferente a uno should - o simplemente es "azúcar sintáctica" para que las pruebas se autodocumenten mejor.


should y must ser semánticamente iguales . Pero no se trata de una mejor documentación, básicamente se trata de preferencias estilísticas personales (prefiero must por ejemplo).

can es un poco diferente . No puede (nomen omen) usarlo directamente como un comparador, solo está disponible en un descriptor de prueba. Cita de FlatSpec :

Nota: puede usar must o can así como debería en un FlatSpec. Por ejemplo, en lugar de "pop ...", podría escribirlo "pop ..." o "pop" ...

(Lo mismo se aplica para WordSpec y las two clases de aparatos corresponding )

Tenga en cuenta que durante un breve período de tiempo (en ScalaTest 2.0.x, creo), el uso de must quedó obsoleto, sin embargo, en 2.1.0, la decisión se ha revertido :

MustMatchers resucitados en el paquete org.scalatest. Se cambió la advertencia de eliminación de org.scalatest.matchers.MustMatchers para sugerir el uso de org.scalatest.MustMatchers en lugar de org.scalatest.Matchers, que fue la sugerencia en 2.0. Disculpas a los usuarios que ya han migrado deberían hacerlo al actualizar a 2.0.