在ScalaTest中断言case类
我看到有对选项类型的支持,但是自定义案例类呢 我有点想这样做:在ScalaTest中断言case类,scala,pattern-matching,scalatest,case-class,Scala,Pattern Matching,Scalatest,Case Class,我看到有对选项类型的支持,但是自定义案例类呢 我有点想这样做: result match { case SuccessCase(values) => { values.foo should be ("bar") } case FailureCase => // should fail test, but how to say this in ScalaTest? } 您可以使用fail()故意使测试失败,例如case FailureCase=>fail(“err
result match {
case SuccessCase(values) => {
values.foo should be ("bar")
}
case FailureCase => // should fail test, but how to say this in ScalaTest?
}
您可以使用fail()故意使测试失败,例如case FailureCase=>fail(“err msg”),但我不确定我是否理解您的意图。也许您可以展示更多的代码或详细说明以澄清问题?假设您想要的案例是
DesiredCase
,这是否有效
result match {
case DesiredCase(values) => {
values.foo should be ("bar")
}
case _ => {
fail("Not DesiredCase")
}
}
Bill Venners还建议,如果经常编写此类测试,则应编写自定义匹配器:
谢谢你,比尔!谢谢你的精彩框架。我自己的回答有意义吗?哦,但是实际上,Inside也没有帮助,因为如果没有指定失败案例,测试不会失败-(所以我必须显式地使用fail()?我真的只想能够断言一个case类是一个特定的case,并提取它的内容进行断言,有点像
选项.value
速记…(可能是我遗漏了一些明显的东西!)嗨,是的,这就是我正在做的(Bill的回答告诉我如何调用fail()明确地)。