Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ScalaTest-如何检查序列的所有项是否与谓词匹配?_Scala_Scalatest - Fatal编程技术网

ScalaTest-如何检查序列的所有项是否与谓词匹配?

ScalaTest-如何检查序列的所有项是否与谓词匹配?,scala,scalatest,Scala,Scalatest,有没有更好的方法显示错误消息?例如,下面的代码 它应该在中“检查项目是否满足谓词”{ 列表(1,2,3,4,5,6)。对于所有(x=>x

有没有更好的方法显示错误消息?例如,下面的代码

它应该在中“检查项目是否满足谓词”{
列表(1,2,3,4,5,6)。对于所有(x=>x<5)都应该相等(true)
}
仅给出以下错误,无任何说明:

“假不等于真”


谓词不仅可以是
least
表达式,还可以是任何其他函数。对于我找到的
最少的

您可以从

“检查项目是否满足谓词”

“检查列表中的所有项目是否小于5”

然后答案就更有意义了

如果您想要一个更有意义的答案,可以调用
fail
,如

fail("I've got a bad feeling about this.")
您还可以以多种方式使用断言,请阅读以了解更多信息。例如:

assume(database.isAvailable, "The database was down again")
List(1,2,3,4,5,6)。foreach{uu}应该是<5}
不仅可以是最小表达式,还可以是任何其他函数

使用try

其中,
pred:T=>Boolean
,它输出带有失败索引和谓词的信息性错误消息,如

- should check that items satisfy predicate *** FAILED ***
  forAll failed, because: 
    at index 4, pred(x) was false (HelloSpec.scala:41) 
  in List(1, 2, 3, 4, 5, 6) (HelloSpec.scala:41)


没有尝试过,但你确定它能解析吗?我总觉得应该是
应该是<5
,就像这样<代码>value()method(should)value(be)method(@AndreyTyukin是的,你是对的……我不知道在每个特定的情况下会用哪种方式编译,只要试一下就可以了:)我已经更新了注释:实际上很容易发现,因为早期所有的scala edsl都有
expression-methodName-expression-methodName-expression
等结构。我没有“记住”任何关于
应该是
应该是
的内容,我只是检查它是否交替。是的。。。仍然要记住,
应该是一种方法,而
不是。。。虽然
应该是
仍然是:D
forAll (xs) { x => assert(pred(x)) }
- should check that items satisfy predicate *** FAILED ***
  forAll failed, because: 
    at index 4, pred(x) was false (HelloSpec.scala:41) 
  in List(1, 2, 3, 4, 5, 6) (HelloSpec.scala:41)