sho*_*odz 8 testing scala specs2 scala-2.11 spec2
我是Scala和Spec2的新手.
我想创建以下测试,但我从编译器得到一个错误.
这是我想写的测试
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")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:C:\ Users\haques\Documents\workspace\SBT\jsonParser\src\test\scala\com\twitter\sample\simpleSimpleParserSpec.scala:17:找不到类型组织的证据参数的隐含值. specs2.execute.AsResult [对象]
问候,
Shohidul
编译器在这里产生错误,因为他试图将a MatchResult[Option[Parsed]]与类型的失败统一起来Result.它们统一为Object,编译器无法AsResult为其找到类型类实例.您可以通过为MatchResult失败的案例提供另一个来修复您的示例:
parser.parse(tweet) match {
case Some(parsed) => {
parsed.text must be_==("foo")
parsed.id must be_==(1)
}
case _ => ko("didn't parse tweet")
}
Run Code Online (Sandbox Code Playgroud)
该ok和ko方法的等价success和failure,但MatchResults 而不是被Results.
| 归档时间: |
|
| 查看次数: |
1860 次 |
| 最近记录: |