我无法弄清楚如何组合specs2匹配器以允许您检查对象的多个属性。例如,我有一个对象集合,我想断言它们中至少有一个匹配了许多约束。
这样可行,但在各个属性(c.name和c.domain)上使用匹配器会更好,而不是最终结果(因为后一种情况完全没有描述失败):< / p>
response.cookies.exists(c =>
c.name.exists(_.equals("PLAY_SESSION")) &&
".mydomain.com".equals(c.domain)
) must beTrue
答案 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")
}