I am new to Scala and Spec2.
I would like to create the following test but I get an error from the compiler.
Here is the test I would like to write
import org.specs2.mutable._
import org.specs2.specification._
import org.specs2.matcher._
import org.specs2.matcher.MatchResult
class SimpleParserSpec extends Specification {
"SimpleParser" should {
val parser = new SimpleParser()
"work with basic tweet" in {
val tweet = """{"id":1,"text":"foo"}"""
parser.parse(tweet) match {
case Some(parsed) => {
parsed.text must be_==("foo")
parsed.id must be_==(1)
}
case _ => failure("didn't parse tweet")
}
}
}
}
I get the error: C:\Users\haques\Documents\workspace\SBT\jsonParser\src\test\scala\com\twitter\sample\simpleSimpleParserSpec.scala:17: could not find implicit value for evidence parameter of type org.specs2.execute.AsResult[Object]
Regards,
Shohidul
The compiler produces an error here because he tries to unify a
MatchResult[Option[Parsed]]
with a failure of typeResult
. They unify asObject
and the compiler can't find anAsResult
typeclass instance for that. You can fix your example by providing anotherMatchResult
for the failed case:The
ok
andko
methods are the equivalent ofsuccess
andfailure
but areMatchResults
instead of beingResults
.