我如何检查是否一个Seq[String]
是空的或不斯卡拉使用specs2? 我使用的seq must be empty
或seq.length must be greaterThan(0)
但我最终总是与类型不匹配错误。
ret is Seq[String]
ret.length must be greaterThan(0)
[error] ApiTest.scala:99: type mismatch;
[error] found : Int
[error] required: org.specs2.matcher.Matcher[String]
[error] ret.length must be greaterThan(0)
我认为,类型不匹配错误是由代码另一位比你已经张贴造成的。
你的榜样应该只是一起工作:
ret must not be empty
我试过,并确认一切正常:
"Seq beEmpty test" should {
"just work" in {
Seq("foo") must not be empty
}
}
你可能会遇到麻烦,如果你使用多个断言每个测试,例如以下不会编译:
"Seq beEmpty test" should {
"just work" in {
List() must be empty
Seq("foo") must not be empty
}
}
这是出乎意料的,但通过帮助编译器轻松修复:
"Seq beEmpty test" should {
"just work" in {
List() must beEmpty
Seq("foo") must not beEmpty
}
}
尝试使用specs2匹配have size
。 由于大小不能为负,如果不是零,它必须大于零。 因此,我们可以使用:
ret must not have size (0)