【问题标题】:How to validate a "null" Boolean response?如何验证“空”布尔响应?
【发布时间】:2019-05-08 14:05:12
【问题描述】:

我正在使用 Rest-Assured 开发 Api 自动化测试。这是我的 API 响应:


    {
        "is_active": false,
        "token": null
    } 

我想确定 Token 为空,所以我开发了以下代码:


    public void responseLoginFacebookTokenSemCad (String srtToken) {
        boolean responseToken = Boolean.valueOf(srtToken);

        Assert.assertTrue(ResponseHolder.getResponseBody().contains("token"));
        boolean resBodyLoginFacebookSemCad = ResponseHolder.getResponseJson().get("token");
        Assert.assertEquals(resBodyLoginFacebookSemCad, responseToken);

    }

String srtToken 类似于“null”。我收到以下消息:

java.lang.NullPointerException 在 stepDefinition.dataMap.responseLoginFacebookTokenSemCad(dataMap.java:409) 在 stepDefinition.steps.validaTokenLoginFacebook(steps.java:277) 在✽.no response no compo token retornara null(file:src/test/java/Autobusca/Ford/loginFacebook.feature:23)

如何验证它?谢谢

【问题讨论】:

  • 哪一行抛出异常?
  • 使用包装器Boolean而不是原始的boolean类型,前者允许nulls,而后者不允许
  • 检查 ResponseHolder.getResponseJson().get("token") 是否为空;如果不是,则分配获取的值。 boolean 如果未赋值,默认为 false,所以只需检查它是否为空

标签: java rest-assured rest-assured-jsonpath


【解决方案1】:

你能试试这个 assertEquals(null, ResponseHolder.getResponseBody().get("token")); 吗?

【讨论】:

    猜你喜欢
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多