【问题标题】:Dealing arrays with hamcrest and rest assured用hamcrest处理数组,放心
【发布时间】:2015-05-29 03:28:29
【问题描述】:

我不知道如何使用 hamcrest 创建代码来检查具有这些属性的数组内的数组。

(想象一下,因为它有多个具有不同数据的条目)

 {
        "mobilenum": "+6519829340",
        "firstname": "Allen",
        "lastname": "Edwards",
        "location": "Singapore"
    }

如果我使用这个:

 .body("smsentries.mobilenum", contains(equalTo("+6519829340")));

它返回它确实存在,但是我如何进行更多检查以确保它找到的对象也具有相同的名字、姓氏和位置?

我也认为这是错误的:

 .body("smsentries.mobilenum", contains(equalTo("+6519829340")))
      .and()
 .body("smsentries.firstname", contains(equalTo("Allen"));

据我所知,如果数组包含的 mobilenum 等于提供的值并且数组包含名称“Allen”,它会搜索数组

我需要找到移动编号等于“+6519829340”且名字等于“Allen”的数组。

你们知道如何解决这个问题吗?

【问题讨论】:

    标签: hamcrest rest-assured


    【解决方案1】:

    我需要找到 mobilenum 等于的数组 “+6519829340”,名字等于“Allen”。

    您可以使用“查找”方法:

    .body("smsentries.find { it.mobilenum == '+6519829340' }.firstname", equalTo("Allen")
    .body("smsentries.find { it.mobilenum == '+6519829340' }.lastname", equalTo("Edwards").
    

    如您所见,您实际上是在复制这两种情况下的路径表达式,因此为了改进这一点,我们可以使用root paths

    .root("smsentries.find { it.mobilenum == '+6519829340' }").    
    .body("firstname", equalTo("Allen")
    .body("lastname", equalTo("Edwards").
    

    您还可以参数化根路径:

    .root("smsentries.find { it.mobilenum == '%s' }").    
    .body("firstname", withArgs("+6519829340"), equalTo("Allen")
    .body("lastname", withArgs("+6519829340"), equalTo("Edwards").
    .body("firstname", withArgs("+12345678"), equalTo("John")
    .body("lastname", withArgs("+12345678"), equalTo("Doe").
    

    【讨论】:

    • 嗨,约翰!谢谢!但我还有另一个问题。如果名字等于 x 和姓氏等于 y 的语法是什么,那么 number 应该是 z。上面数据中的另一个示例除了字段外具有相同的数据。如何组合条件?
    • 我认为您应该为此创建一个新问题并将其标记为已回答。如果您在此处发表评论(带有指向新问题的链接),我也可以回答新问题。
    • 我猜你是对的。这是我的问题的新链接:stackoverflow.com/questions/30706158/… 谢谢!
    • it (it.mobilenum) 应该是什么? JsonPath.param 的参数?但是,您如何从JsonPath 获得ValidatableResponse
    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    相关资源
    最近更新 更多