Scala 如何在Specs2中重用描述*和*匹配器的值?

Scala 如何在Specs2中重用描述*和*匹配器的值?,scala,specs2,Scala,Specs2,我目前正在使用scalaz的|>来实现以下目标: (4 |> (s => (s + " is smaller than 10" ! (s < 10 must beTrue))) 当示例正文与描述非常接近时,您可以使用“”: 如果要使用更多信息增强故障消息,还可以使用aka运算符: (4 < 10) aka "four < ten" must beTrue (4

我目前正在使用scalaz的
|>
来实现以下目标:

(4 |> (s => (s + " is smaller than 10" ! (s < 10 must beTrue)))

当示例正文与描述非常接近时,您可以使用“”:

如果要使用更多信息增强故障消息,还可以使用
aka
运算符:

 (4 < 10) aka "four < ten" must beTrue
(4<10)又名“四<十”必须正确
最后,还有一个更简单的版本,您可以简单地:

“4小于10”!{(s:String)=>

s、 拆分(“”).head.toInt必须适合您的简单GWT案例:将对象转换为字符串形式比从字符串解析回来要容易得多。自动示例看起来不错,但我必须创建许多自定义匹配器。也许这就是方法……如果您认为specs2中支持哪些,我洗耳恭听。否则,使用函数可能是正确的选择,这正是specs2想要支持的,而JUnit不能从函数生成测试。
"some examples"     ^
{ 4 must be_<(10) } ^
{ 5 must be_<(10) }
[info] some examples
[info] + 4 must be_<(10)
[info] + 5 must be_<(10)
14 is not less than 10
        vs
the value is false
 (4 < 10) aka "four < ten" must beTrue
 "4 is smaller than 10" !  { (s: String) => 
   s.split(" ").head.toInt must be_<(10) 
 }