java - 如何让junit jupiter集成测试知道spring上下文?
问题描述
我已经CompactDisc
在我的 spring 应用程序中定义了 bean。根据Spring TestContext Framework,SpringJunit4ClassRunner
可以使下面的junit-jupiter
集成测试了解 Spring 上下文。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = CdConfig.class)
public class CdTest {
@Autowired
private CompactDisc cd;
@Test
public void cdShouldNotBeNull() {
assertNotNull(cd);
}
}
但似乎该CompactDisc
实例没有自动装配。
> Task :soundsystem:test FAILED
CdTest > cdShouldNotBeNull() FAILED
org.opentest4j.AssertionFailedError at CdTest.java:35
在gradle.build
我使用junit
平台运行测试时,
test {
useJUnitPlatform()
testLogging {
events 'passed'
}
}
是否useJUnitPlatform()
覆盖了@RunWith(SpringJUnit4ClassRunner.class)
设置?
我试过了@ExtendWith(SpringExtension.class)
,现在可以了。
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = CdConfig.class)
public class CdTest {
@Autowired
private CompactDisc cd;
@Test
public void cdShouldNotBeNull() {
assertNotNull(cd);
}
}
> Task :soundsystem:test
CdTest > cdShouldNotBeNull() PASSED
任何人都可以解释为什么@RunWith(SpringJUnit4ClassRunner.class)
失败?
解决方案
推荐阅读
- python - 这给了我同样的结果!!!!!!全部 3 为什么?这里有什么问题?
- docker - 安装路径覆盖现有内容
- types - Rust:Traits 中的通用返回类型,用于返回非对象安全 Traits 的实现
- deep-learning - 是否有任何真正的理由将神经网络批量大小设置为 2 的幂?
- django - 在视图上检索和更新模型的字段并在模板中显示更新的字段
- python - 如果 Layout 连接到父级,为什么动态调整大小不起作用?
- angular - 如何从 HTML 以角度设置局部变量?
- python - 如何使用 for 循环构建可以从列表中读取值的字典?
- sql - SQL插入接口切片
- python - 将 TwitterAPI 结果保存到 csv 文件