<分区>
我在 spring 容器 web 应用程序上构建了一些 junit 服务层测试。
我的 Web 应用程序通常在 tomcat 服务器上运行。
我的问题是:当我将项目作为 junit 测试运行时,tomcat 实例是否以某种方式启动?还是 junit 知道如何在没有真正的 tomcat 的情况下运行测试?
谢谢,
<分区>
我在 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/