有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重新启动接收两个可能的状态代码之一

我有考试(!)restasured代码,检查REST端点是否将0作为状态代码返回给我

     given()
        .contentType(CONTENT_TYPE_APPLICATION_JSON)
    .when()
        .get(getRestOperationPath())
    .then()
        .statusCode(STATUS_CODE_OK); 

但现在它也可能提供代码404,这被认为是有效的输出。我需要我的测试来检查状态代码是否是这两种代码中的一种,但我不知道该怎么做。你能告诉我怎么做吗?如果不可能的话

upd:

。get(getRestOperationPath())返回响应->;你可以得到状态码并进行比较。关门了


共 (3) 个答案

  1. # 1 楼答案

    您也可以使用Hamcrest匹配器来实现这一点,而无需将响应提取到单独的变量中

    您可以使用anyOf()is()的组合

    import static org.hamcrest.Matchers.anyOf;
    import static org.hamcrest.Matchers.is;
    
    ...
    
    given()
        .contentType(CONTENT_TYPE_APPLICATION_JSON)
    .when()
        .get(getRestOperationPath())
    .then()
        .statusCode(anyOf(is(STATUS_CODE_OK),is(STATUS_CODE_NOT_FOUND))); 
    
  2. # 2 楼答案

    如果您想检查正文中的多个错误代码,您也可以这样做

    import static org.hamcrest.CoreMatchers.anyOf;
    import static org.hamcrest.CoreMatchers.is;
    
    response
       .jsonPath()
       .getString("errorCode")
       .equals(
          anyOf(is("E_001"),
                is("E_002"),
                is("E_003")));
    
  3. # 3 楼答案

    .get(getRestOperationPath())返回Response。 你可以.getStatusCode()并进行比较。关门了

    回答这个问题