我有以下这个匹配器:
def haveBodyWith(content: Foo): Matcher[HttpResponse] = {
===(content) ^^ { (_: HttpResponse).entity.as[Foo].right.get.copy(name = "") }
}
case class Foo(id: Int, name: String)
我从HttpResponse中提取结果,然后将其与预期内容进行比较。到目前为止,这个匹配器工作得很好。现在,我有一个特定的用例,其中响应的内容是一个case类序列,我想忽略case类的一个属性。我无法完成这项工作:
{{1}}
如果我只是没有未来的内容进行比较,我就是这样做的(可能是类似于Seq的案例类),但未来会让它变得更难一些。 你觉得怎么样?
谢谢!
答案 0 :(得分:1)
讨论发生在Google groups,最终的解决方案是:
def haveBodyWith1(content: Foo): Matcher[Future[HttpResponse]] = {
===(normalize(content)) ^^ { (response: HttpResponse) =>
normalize(response.foo) }
}.await
def normalize(foo: Foo) = foo.copy(name = "")