您如何检查 specs2 中对象的一些属性?

How do you check a number of properties of an object in specs2?

我不知道如何组合 specs2 匹配器来检查一个对象的多个属性。例如,我有一组对象,我想断言其中至少有一个符合多个约束条件。

这行得通,但是在单个属性(c.name 和 c.domain)上使用匹配器会更好,而不是最终结果(因为后一种情况根本没有描述性)关于失败):

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

你可以试试这个

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")
}