如何在specs2中检查对象的许多属性?

时间:2015-02-18 03:25:23

标签: scala bdd specs2

我无法弄清楚如何组合specs2匹配器以允许您检查对象的多个属性。例如,我有一个对象集合,我想断言它们中至少有一个匹配了许多约束。

这样可行,但在各个属性(c.name和c.domain)上使用匹配器会更好,而不是最终结果(因为后一种情况完全没有描述失败):< / p>

  response.cookies.exists(c => 
        c.name.exists(_.equals("PLAY_SESSION")) && 
        ".mydomain.com".equals(c.domain)
  ) must beTrue

1 个答案:

答案 0 :(得分:2)

你可以试试这个

response.cookies must contain { c: Cookie => 
  c must (haveName("PLAY_SESSION") and haveDomain(".mydomain.com"))
}

如果您编写了自己的Cookie匹配器:

def haveName(name: String): Matcher[Cookie] = { c: Cookie =>
  (c.name.exists(_.equals(name)), s"$c doesn't contain the name $name")
}