java - Spring - Web 应用程序的 Junit

标签 java spring tomcat junit

<分区>

我在 spring 容器 web 应用程序上构建了一些 junit 服务层测试。

我的 Web 应用程序通常在 tomcat 服务器上运行。

我的问题是:当我将项目作为 junit 测试运行时,tomcat 实例是否以某种方式启动?还是 junit 知道如何在没有真正的 tomcat 的情况下运行测试?

谢谢,

最佳答案

这在很大程度上取决于您所谈论的测试类型。单独测试特定类功能的单元测试不需要运行 Tomcat。这些只是执行这些类中的逻辑,根据需要提供模拟依赖项。您正在使用 Spring,所以我假设您正在使用 DI 来提供依赖项。

您还有集成测试。这些可能是简单的集成测试,例如针对数据库装置运行的 DAO 测试或针对在容器中运行的应用程序运行的功能测试。后一种类型需要您有一个正在运行的应用程序。

编辑:

Its a service layer testing, not a unit testing, Junit is the tool

如果这是正确的,那么听起来测试属于简单的集成测试类别,它需要数据库但不需要应用程序容器。因此,您的 JUnit 测试需要设置此数据库(可以在内存中,例如 H2)并使用已知的起始位置填充它。然后,JUnit 将针对这个固定装置执行您的测试,并在完成后将其拆除。

关于java - Spring - Web 应用程序的 Junit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20595389/

相关文章:

java - Jni 和共享库

java - 使用php和mysql为android构建登录、注册系统,但应用程序可以运行

java - Spring Data JPA + OpenJPA @autowired 存储库字段在 web 应用程序中为空,但对于 junit 来说很好

java - 如何在 Tomcat 8 中创建一个新的共享文件夹并从中加载我的属性文件

apache - 仅在用户登录时使用 https,否则在 Web 应用程序中使用

java - 应用程序未加载到 Tomcat 7 服务器上

java - 什么是NullPointerException,我该如何解决?

java - 克隆 JFrame

java - 模拟数据库、MockMvc

java - 禁用 Spring Boot Web 客户端日志