如何使用junit为JPA REST API编写测试用例?

时间:2017-01-20 10:36:22

标签: junit dbunit

我想为我的RESTful API webservices编写junit测试用例,以检查来自DB的响应和预期响应。 这里的基本流程是REST文件(调用) - > BusinessLogic(从DB获取结果) - > REST文件(返回)

这是我的REST文件:

@Path("add")
@Stateless
public class AddingREST {

@Inject
private AddBO addBO;

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("success/{n1}/{n2}")
public List addREST(@PathParam("id") int n1, @PathParam("id") int n2) {
    return addBO.add(n1, n2);
}

}

以下是业务逻辑文件:

@Stateless
public class AddBO {

@PersistenceContext(unitName = "WebApplicationPU")
private EntityManager entityManager;

public List add(int n1, int n2) {
    int n3 = entityManager.createNamedQuery("SELECT no from no_table").getResultList();
    List numbers = new ArrayList<int>();
    numbers.add(n1);
    numbers.add(n2);
    numbers.add(n3);
    numbers.add(n1+n2+n3);
    return numbers;
}

}

这里的问题是如何在测试用例中提供从DB获取的n3值,因为实际代码位于我不想清理的不同数据库中。基本上,测试用例将在不同的空数据库上运行,并且在运行数据库时,我必须在测试用例执行后插入数据并清理数据库。

我该如何处理?我应该使用DBUnit来插入和清理数据吗?

1 个答案:

答案 0 :(得分:0)

是的,dbUnit适用于使用JPA进行数据库预备。