This section presents some of the common pitfalls you might face when using
The common symptom here is a NullPointerException
for some attributes of your specification. You can refer to this link for an explanation of variable initialization in Scala. In the meantime the basic fix is to use a lazy val
instead of a val
.
You might expect the following specification to fail:
class ShouldItFail extends Specification:
def is = s2"""
Should this example fail? $e1
"""
def e1 =
1 must ===(100000) // do you expect this to fail
10 must ===(10)
However, as explained in Structure - Thrown expectations, the first expectation is lost because, by default, no exceptions are thrown in an acceptance specification. In that case you can either:
ThrownExpectations
trait You created a custom Notifier
or another class for reporting and when you use it nothing happens. In that case add the verbose
argument to the command line and you will get more messages including exceptions and stacktraces about what is going on.