tutorial test should org lists failure example assertthrows scala specs scalatest

org - scalatest should



Uso de la sintaxis "no debe producir[excepción]" en ScalaTest (2)

Estoy jugando con Specs2 y ScalaTest para BDD en Scala. He escrito las expectativas en Specs2 cuando afirmo que no se debe lanzar una excepción determinada.

"do something" in { { .... } must not(throwA[MyException]) }

Esperaba poder escribir el equivalente en ScalaTest como:

"do something" in { evaluating { .... } should not produce[MyException] }

Pero esto no se compila y no pude encontrar la manera de hacerlo. ¿Es eso posible?

Muchas gracias de antemano.


Esto no es posible directamente en la última versión de ScalaTest porque el método de EvaluatingApplicationShouldWrapper no tiene una sobrecarga que tome un NotWord , solo uno que tome una ResultOfProduceInvocation[T] .

Yo sugeriría simplemente dejar que ocurra la excepción no deseada, que fallará en la prueba. Esta es la forma clásica.

Pero si cree que necesita más claridad sobre qué falló exactamente, podría usar un bloque try - catch para controlar el error. Si detecta el error que no desea que ocurra, maneje la excepción con una llamada al método de fail :

fail("That expression shouldn''t have thrown a MyExceptionType exception")


La versión actual de ScalaTest soporta esto:

noException should be thrownBy 0 / 1

Ver docs .