1 回答
TA贡献1942条经验 获得超3个赞
问题是您使用的是不同的 Runner。通常人们使用SpringRunner.class它来处理创建测试上下文等的能力。
构造一个新的 SpringRunner 并初始化一个 TestContextManager 以向标准 JUnit 4 测试提供 Spring 测试功能。
要使用不同的跑步者以及弹簧功能,您可以使用 aClassRule和 a的组合Rule
@ClassRule
public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
SpringClassRule 是一个自定义的 JUnit TestRule,它通过 TestContextManager 和相关的支持类和注解在标准 JUnit 测试中支持 Spring TestContext Framework 的类级特性。
与 SpringJUnit4ClassRunner 相比,Spring 基于规则的 JUnit 支持的优势在于它独立于任何 Runner,因此可以与现有的替代运行器(如 JUnit 的 Parameterized)或第三方运行器(如 MockitoJUnitRunner)结合使用。
但是,为了实现与 SpringJUnit4ClassRunner 相同的功能,SpringClassRule 必须与 SpringMethodRule 结合使用,因为 SpringClassRule 仅支持 SpringJUnit4ClassRunner 的类级特性。
没有这些,就无法在您的依赖类等中自动装配。
我已经通过测试向您的项目添加了 PR。
添加回答
举报