有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有一种通用的方法来验证(基于xml的)spring配置是否有效?

问:是否有一种通用的方法来验证(基于xml的)spring配置是否有效

进一步解释: “valid”指的不是xml本身是否有效(我不谈论xsd验证),而是指更多的“逻辑有效”,例如,如果所有引用的类都可用,或者特定引用可用/可以解析

这个问题的背景是spring mvc应用程序的CI环境中的QA过程:

假设开发人员在类名中有输入错误,或者引用在webcontext配置文件中不是唯一的,并且他提交了此更改。现在将触发自动生成:

  1. 应用程序编译成功
  2. 单元测试是“绿色的”(因为它们不需要任何spring配置)
  3. 集成测试为“绿色”(因为集成测试不依赖webcontext配置)
  4. 功能/回归测试开始

在当前的设置中,我们会在第4步中注意到这个简单的输入错误-但达到这一点相当耗时

如果有一个机制/工具可以验证是否可以加载spring上下文,以节省一些时间,那就太好了


共 (2) 个答案

  1. # 1 楼答案

    在集成测试之前“预验证”XML配置的一种简单方法是使用SpringJUnit4ClassRunner进行JUnit测试。这在spring测试罐中提供

    例如

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = { "/foo.xml" })
    public class XmlValidate {
    
        @Test
        public void loadsWithoutError() {
            // nothing to do, SpringJUnit4ClassRunner will throw exception
            // if there are any class-not-found exceptions etc.
        }
    }
    
  2. # 2 楼答案

    integration tests does not rely on webcontext configurations

    我的集成测试针对部署的应用程序运行。如果您想测试web上下文,那么。。。测试一下。具体取决于您想要测试的内容

    • 您可以使用Maven或任何构建工具在测试环境中部署应用程序,然后运行集成测试

    • 您可以使用像Grizzly这样的轻量级服务器,跨测试类重用它。

    由于这些测试成本高昂,我通常会有一个测试来检查应用程序是否可以部署以及上下文是否启动。我使用Grizzly并在其余的单元测试中运行此测试,以便尽快检测到问题。根据情况,可以添加其他类似的测试用例