【发布时间】:2017-04-21 10:26:40
【问题描述】:
在使用FeatureSpec 和scenario 进行测试时,我的部分代码发送“失败”案例类(即ApplesNotAllowed)并通过scalaz 析取使用。
快速示例:
val result = if (order.value != 10) {
-\/(ApplesNotSupported(orderNumber))
} else {
\/-Option.empty[Orange]
}
在我的测试套件中,我可以很容易地测试我收到Option.empty[Orange] 的情况,期望它是shouldBe None。但是,当我想测试返回的 ApplesNotSupported 案例类时,我确实遇到了问题。既然我们希望“失败”发生,我如何期望这种“失败”会承认测试通过?每当我尝试运行我的场景时,我都会收到错误消息:
Validation is not success ApplesNotSupported(orderNumber)
尝试使用interrupt 并不能解决问题,因为它不是例外,我们也不想故意fail 进行测试。使用scalaz 和ScalaTest 会不会有问题?
我对函数式编程和 Scala 编程还是很陌生,所以任何资源或建议都会有所帮助,因为我在搜索文档时遇到了麻烦。
【问题讨论】:
标签: scala functional-programming scalatest