为什么 .isNotNull();即使我有控制器 class,断言也会失败?

Why .isNotNull(); assertions fails even though I have a controller class?

我是 Spring 引导和测试的新手。我目前正在学习 baeldung 的教程 (https://spring.io/guides/gs/testing-web/),但遇到了这个错误。

事实上,当我使用 isNull() 方法时它通过了。但我不明白这一点,因为我的控制器 class 有映射等等。为什么会为空?

这是我的控制器class

或者这不是应该如何完成此测试?但是他们在 baeldung

中显示如下

感谢任何帮助。

最佳,

如果你想 运行 具有 spring 上下文的测试用例,你需要在你的测试 class 中提供 @SpringBootTest 注释(即而不是 @SpringBootConfiguration在你的测试中 class Smoke)。除了@SpringBootTest之外的其他选项如下。

对于 junit4:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { SpringTestConfiguration.class })
public class YourTestClass {}

对于 junit 5:

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = { SpringTestConfiguration.class })
public class YourTestClass

其中 SpringTestConfiguration class 包含您需要自动装配的所有 bean。有关 SpringRunner 与 SpringBootTest 的更多详细信息,请阅读 article

你试过assertNotNull(studentController)吗?