【发布时间】:2018-08-08 20:08:01
【问题描述】:
我一直在学习 Spring,我的理解是 Spring 的最大优点是它简化了单元测试,因为它具有依赖注入功能......这是我的理解,如果我错了,请纠正我 - 假设我在我的 Spring bean XML 文件和src 文件夹下的所有 bean 配置中,现在如果我想进行单元测试(独立或通过 junit),那么我会将测试类(具有测试数据)注入通过为我的测试类定义一个 Spring bean 配置文件来主类。
现在,我感到困惑的是,当我使用基于注释的配置而不是基于 Spring XML 的 bean 配置时,我将如何实现相同的目标。假设在我的课堂上,如果我将com.abc.TestData 用于src 文件夹下的com.abc.TestData,那么Spring 将始终从src 文件夹中注入TestData 对象,即使我创建了test 文件夹并在那里创建com.abc.TestData_jUnit 那么我也无法注入这个对象。
那么,当使用注解而不是 Spring bean XML 文件时,这是否意味着 Spring 简化单元测试的优势会消失?我很确定情况并非如此,因此需要您的帮助才能更好地理解事情。
【问题讨论】:
-
如何区分使用 XML 在测试和生产中注入的实例?使用注解有什么不同?
-
我的理解是,在测试期间,我将有一个不同的 Spring bean XML 文件,它将测试类注入到
src文件夹的主类中,并且在生产期间,主 Spring bean XML 文件将在那里将注入真正的课程。现在,我不清楚这将如何与注释一起使用。 -
如果您的
TestData在您的测试源中,那么类路径扫描将如何在生产中获取它?例如? -
对,它不会在 prod 中拾取。它仅在我进行单元测试时才有效。因此,我将拥有我的主测试类,它将创建主应用程序类的对象,然后注入测试数据对象。没有?