gpt4 book ai didi

scala spec2 我无法创建同时使用 must be_== 和 failure 的测试

转载 作者:行者123 更新时间:2023-11-28 19:44:48 25 4
gpt4 key购买 nike

我是 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")
}
}
}
}

我得到错误: C:\Users\haques\Documents\workspace\SBT\jsonParser\src\test\scala\com\twitter\sample\simpleSimpleParserSpec.scala:17: 找不到类型为 org.specs2.execute.AsResult 的证据参数的隐式值[对象]

问候,

修希杜尔

最佳答案

编译器在这里产生错误,因为他试图将 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")
}

okko 方法等同于 successfailure 但它们是 MatchResults 而不是 Results

关于scala spec2 我无法创建同时使用 must be_== 和 failure 的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com