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

     2023-04-19     66

关键词:

【中文标题】如何使用 junit 为 JPA REST API 编写测试用例?【英文标题】:How to write test cases using junit for JPA REST API? 【发布时间】:2017-01-20 10:36:21 【问题描述】:

我想为我的 RESTful API 网络服务编写 junit 测试用例,以检查来自 DB 的响应和预期响应。 这里的基本流程是 REST 文件(调用)-> BusinessLogic(从数据库中获取结果)-> 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;

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

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

【问题讨论】:

【参考方案1】:

是的,dbUnit 非常适合使用 JPA 进行数据库准备。

【讨论】:

如何在不修改原始数据库的情况下使用 javadb 对 jpa 代码进行 JUnit 测试?

】如何在不修改原始数据库的情况下使用javadb对jpa代码进行JUnit测试?【英文标题】:HowtoJUnittestthejpa-codeusingjavadbwithoutmodifyingtheoriginaldb?【发布时间】:2016-05-1516:30:34【问题描述】:我正在使用JPA将我的java对象存储在使用javadb的... 查看详情

如何使用 junit 5 为 Eclipse 编写测试套件?

】如何使用junit5为Eclipse编写测试套件?【英文标题】:Howtowriteatestsuitewithjunit5foreclipse?【发布时间】:2021-05-0709:04:10【问题描述】:我正在尝试通过测试套件中的junit5测试运行。但是我得到一个错误importorg.junit.platform.runner.JUnitPl... 查看详情

使用 JPA 和 JUnit 测试时如何一致地擦除内存数据库中的 H2 [重复]

】使用JPA和JUnit测试时如何一致地擦除内存数据库中的H2[重复]【英文标题】:HowtoconsistentlywipeH2inMemorydatabasewhenusingJPAandJUnitTesting[duplicate]【发布时间】:2018-01-1607:30:20【问题描述】:我的设置是这样的。内存数据库中的H2使用JPA... 查看详情

如何使用springboot编写rest控制器、服务和dao层的junit测试用例?

】如何使用springboot编写rest控制器、服务和dao层的junit测试用例?【英文标题】:Howtowritejunittestcasesforrestcontroller,serviceanddaolayerusingspringboot?【发布时间】:2019-12-3021:17:59【问题描述】:JUnitRestController、Service和DAO层的测试用例怎... 查看详情

如何使用 Django 通道为 Django Rest Api 打开 Websocket?

】如何使用Django通道为DjangoRestApi打开Websocket?【英文标题】:HowdoIuseDjangochannelstoopenaWebsocketforDjangoRestApi?【发布时间】:2020-05-2414:16:29【问题描述】:https://github.com/prateekamana/tempstack所以我有一个简单的应用程序,我想在我的反... 查看详情

如何使用rest api在一个信号中为用户设置标签

】如何使用restapi在一个信号中为用户设置标签【英文标题】:Howtosetatagforauserinonesignalwithrestapi【发布时间】:2017-04-1906:32:34【问题描述】:根据onesignaldocumentation标签可以用restAPI设置:标签是可以通过OneSignalSDK或服务器RESTAPI添... 查看详情

Spring Boot JPA 元模型不能为空!尝试运行 JUnit / 集成测试时

...2020-06-2117:09:59【问题描述】:我在一个基于maven的项目中使用SpringBoot、JUnit4和Mockito来测试我的SpringBoot微服务RESTAPI。因此 查看详情

如何使用 REST API 为 Bucket 和 BigQuery 启用“导出账单”信息谷歌云

】如何使用RESTAPI为Bucket和BigQuery启用“导出账单”信息谷歌云【英文标题】:Howtoenable"ExportBilling"informationgooglecloudusingRESTAPIforbothBucketandBigQuery【发布时间】:2017-09-0610:36:42【问题描述】:根据谷歌控制台,我们可以使用... 查看详情

如何在 REST API 中使用下划线将驼峰大小写转换为小写?

】如何在RESTAPI中使用下划线将驼峰大小写转换为小写?【英文标题】:HowtoconvertcamelcasetolowercasewithunderscoresinaRESTAPI?【发布时间】:2021-04-2702:54:24【问题描述】:我正在使用Quarkus和MicroprofileOpenAPI来映射RESTAPI中的实体。我可以通... 查看详情

如何使用 python falcon rest api 为多个用户级别创建带有令牌的用户身份验证

】如何使用pythonfalconrestapi为多个用户级别创建带有令牌的用户身份验证【英文标题】:Howtocreateuserauthenticationwithtokensformultipleuserlevelswithapythonfalconrestapi【发布时间】:2019-02-1412:27:27【问题描述】:我使用pythonfalconapi创建了一个re... 查看详情

如何将搜索条件声明为参数 REST API 方法

】如何将搜索条件声明为参数RESTAPI方法【英文标题】:HowtodeclaresearchcriteriaasargumentRESTAPImethod【发布时间】:2020-07-2113:06:23【问题描述】:URI看起来像/api/v2/Employee?filter[search_key]=1234我想为上述URI定义RESTAPI方法,但我不知道如何... 查看详情

托管基于 Java 的 REST API 服务

...rvices【发布时间】:2016-02-1918:58:29【问题描述】:我已经使用Java/JPA/Spring/Hibernate为数据库(本地postgresSQLdb)CRUD操作构建了RESTAPI。我的本地tomcat服务器部署一切正常。现在想使用这些REST服务构建一个移动应用程序。我有一个基... 查看详情

如何在 C# 中使用 rest api 从 github 为用户(人)获取数据?

】如何在C#中使用restapi从github为用户(人)获取数据?【英文标题】:Howtogetdatafromgithubforanuser(person)usingrestapiinC#?【发布时间】:2020-12-0814:19:44【问题描述】:我想从GitHub获取特定人员的所有数据。输入用户名时从Github获取所有... 查看详情

测试 Spring Boot Rest API Post 方法

...ostMethod【发布时间】:2017-11-0216:18:32【问题描述】:我对Junit完全陌生,我必须为我的RestController编写Junit测试用例,但我没有从哪里开始。任何帮助将不胜感激。这是我的RestController类。@RestControllerpublicclassRecognition 查看详情

如何使用烧瓶 REST API 身份验证

】如何使用烧瓶RESTAPI身份验证【英文标题】:howtouseflaskRESTAPIauthentication【发布时间】:2019-03-2818:04:06【问题描述】:我们正在开展一个项目,为我们的客户提供我们的搜索引擎Humkinar的搜索服务。我们期待拥有RESTapi,我们的客... 查看详情

如何在rest模板抛出的异常下为if else条件编写Junit

】如何在rest模板抛出的异常下为ifelse条件编写Junit【英文标题】:HowtowriteJunitforifelseconditionunderthrownexceptionsfromresttemplate【发布时间】:2021-09-2017:58:54【问题描述】:我是Junit的新手。我阅读了Mockito的基础知识。我无法弄清楚如... 查看详情

如何为 Rest 模板编写 Mockito Junit 测试用例?

...【发布时间】:2019-06-2100:41:03【问题描述】:从服务中我使用RestTemplate调用第三方api。@RunWith(MockitoJUnitRunner.class)publicclassForceServiceTest@InjectMockspriv 查看详情

如何使用 REST + CodeceptJS 测试 API,访问受 Auth0 保护?

】如何使用REST+CodeceptJS测试API,访问受Auth0保护?【英文标题】:HowdoItesttheAPIusingREST+CodeceptJS,accesstowhichisprotectedwithAuth0?【发布时间】:2021-12-2107:43:34【问题描述】:我想使用RESThelper(用于CodeceptJS)为API编写自动化测试困难在于... 查看详情