Java集成测试中的void方法

Posted

技术标签:

【中文标题】Java集成测试中的void方法【英文标题】:void method in Java Integration Tests 【发布时间】:2022-01-03 18:50:12 【问题描述】:

我有一些 Java 单元测试的经验,现在开始编写集成测试。但是,我在理解集成测试和编写测试时遇到了一些麻烦。以下是一些我想澄清的问题:

1.在我的Java(基于Spring Boot)项目中,我应该为控制器编写集成测试还是为服务编写集成测试也可以(因为有些方法可以不从控制器调用)。

2.如何通过集成测试来测试服务中的空洞?我没有在网上找到合适的例子,我认为没有必要或没有办法通过集成测试来测试 void。有什么澄清吗?

【问题讨论】:

【参考方案1】:

好的,以下是该领域的最佳做法。

我应该为控制器编写集成测试还是也可以为服务编写集成测试

大多数集成测试都是针对服务运行的。这是因为每个服务通常可以支持多个控制器和多个接口。对于控制器,您只需在集成级别上进行快乐路径测试。

任何针对控制器特定异常的测试都会进入控制器unit测试,您可以在其中模拟服务。

如何通过集成测试测试服务中的空洞?

你检查它的副作用。例如,您使用repository class 来查看相关数据是否已持久化到数据库中。

这能解决您的问题吗?在 cmets 中告诉我。

【讨论】:

感谢您的精彩解释。关于我的问题,我需要了解有关这些我似乎不清楚的点的更多信息:( 1. 当我们创建集成测试时,我们应该测试Controller方法还是Service方法?还是两个都可以? 两者。不过,大多数测试都在服务上进行 如果此答案对您有所帮助,请随时点赞并将其标记为已接受。 集成测试的重点不是测试各个部分,而是测试它们的集成程度。

以上是关于Java集成测试中的void方法的主要内容,如果未能解决你的问题,请参考以下文章

Java应该如何优雅地实现单元测试与集成测试

集成测试的中庸之道

在java Spring Boot中,如何在集成测试中将内存中的LDAPConnection对象传递给ldapService?

如何使用 mvn site 命令生成集成测试报告

集成测试用例设计思路

Elasticsearch Spring boot 集成测试