当前位置: 首页 > 知识库问答 >
问题:

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

澹台建华
2023-03-14

我想为RESTful API Web服务编写junit测试用例,以检查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 for n3获取的值,因为实际代码位于不同的数据库中,我不想清理这些数据库。因此,基本上,测试用例将在不同的空数据库上运行,在运行数据库时,我必须在测试用例执行后插入数据并清理数据库。

如何继续执行此操作?我应该使用DBUnit来插入和清理数据吗?

共有1个答案

梁丘宏硕
2023-03-14

是的,dbUnit可以很好地使用JPA准备数据库。

 类似资料:
  • 问题内容: 我正在GoLang中为一个简单的REST服务编写测试。但是,因为我使用julienschmidt / httprouter 作为路由库。我正在努力编写测试。 main.go 控制器 我的问题是:当GetBook既不是HttpHandler也不是HttpHandle时如何测试呢? 如果我使用传统的处理程序,这样的测试将很容易 问题是,httprouter不是处理程序,也不是handlef

  • 以下是我使用的文件: 组成部分xml 服务我mpl.java est.java 错误:

  • 问题内容: 嗨,我创建了一个类ABC.java,并且有一个构造函数ABC()如下: 我正在传递Element.xml作为输入,我想测试该类,所以我创建了ABCTest类,对于以上代码,请告诉我如何为构造函数ABC()编写测试用例以及如何编写assert() 问题答案: 尽管Selenium本身就是一种测试工具,但对我来说听起来好像您想测试此类本身。就像用jUNit进行测试一样。 使用您刚刚提供的代

  • 问题内容: 这是我使用的文件: component.xml ServiceImpl.java ServiceImplTest.java 错误: 问题答案: 确保已导入正确的程序包。如果我正确地记住,有两种不同的自动布线套件。应该 : 这对我来说也很奇怪: 这是一个适合我的示例:

  • 如 Serverless Framework 官方所说 虽然 Serverless 架构在服务业务逻辑方面引入了很多简单性,但是它的一些特性给测试带来了挑战。他们是: Serverless 架构是独立的分布式服务的集成,它们必须被独立地和一起地测试。 Serverless 架构依赖于互联网、云服务,这些服务很难在本地模拟。 Serverless 架构可以具有事件驱动的异步工作流程,这些工作流程很难

  • 我正在尝试为这样的情况编写测试用例,在这个情况下,我期待的是datatruncation异常,我试图使用assert equals和比较消息来断言相同的情况,但是看起来像是比较两个字符串,有没有更好的方法来为这样的异常编写测试用例。 我正在使用JUnit5