【问题标题】:how to test/mock and API Rest genatered via CRUDRepository?如何测试/模拟和通过 CRUDRepository 生成的 API Rest?
【发布时间】:2018-10-05 13:19:23
【问题描述】:

我想为 REST API 生成自动化测试。 我的控制器有一个已经从数据库中获取列表的方法,并且 生成一个 JSON:

@Path("/mrp/banco")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getFromDB() {
        try {
            List<MRP> list = new LinkedList<MRP>();
            list = repository.select();
            LOGGER.info("tamanho da lista/tuplas : " + list.size());
            return Response.ok().entity(list).build();
        } catch (Exception e) {
            System.out.println(e);
        }

        return null;
    }

我不知道如何编写 junit 测试。即使是模拟。 有人可以帮我吗?

谢谢

PS.:我的仓库:

public interface MRPRepository extends CrudRepository<MRP,Long>{    
    @Query("SELECT m FROM MRP m WHERE QTD_SALDO_PROGRAMAR > 0 "
            + "AND FLAG_PLANEJADO = 0 AND FLAG_CANCELADO = 0"
            + "AND FLAG_ATENDIDO=0" )
    List<MRP> select();

}

【问题讨论】:

    标签: java rest unit-testing automated-tests


    【解决方案1】:

    您可以在运行测试时设置模拟器数据库,例如 h2 数据库。

    【讨论】:

    • 在我的测试中,我真的很想使用 API 并设置一个必须测试它的断言
    • 你可以使用TestRestTemplate
    【解决方案2】:

    如果我正确理解您的问题,您可以使用 RestAssured 进行 http 测试。

    Response response = RestAssured.given()
                .baseUri("http://localhost:8080")
                .get("/mrp/banco");
    
        response.then().statusCode(200);
        List<MRP> mrps = Arrays.asList(response.as(MRP[].class));
        // assert anything you want
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多