spring-boot - 使用 @ExtendWith(MockitoExtension.class) 的 Spring Boot JUnit 5 测试不工作 - 模拟为空,MockitoJUnitRunner 工作
问题描述
我刚刚将我的项目从 Spring Boot 2.1 迁移到 2.3,因此现在有了 JUnit 5(带有复古)(还包括版本 3.3.3 的 mockito-core 和 mockito-junit-jupiter)。虽然所有 JUnit 4 测试都运行良好,但我的第一个 JUnit 5 测试运行不正常:
@ExtendWith(MockitoExtension.class)
public class SomeTest {
@InjectMocks
private Some to;
@Mock
private SomeProperties properties;
@Test
public void applied() {
....
//properties is null -> NPE
when(properties.getSome()).thenReturn("some");
....
}
未注入模拟(when 语句中的 NPE)。如果我切换到旧的 JUnit 4 风格,@RunWith(MockitoJUnitRunner.class)
一切正常。
那么可能使用的是旧跑步者或老式跑步者?
如何解决此问题并使用“@ExtendWith”进行测试?我以为我可以逐步迁移 - 让新测试使用 junit5 runner 运行。
解决方案
@Test
确保对注释使用正确的导入:
JUnit 4:
org.junit.Test
JUnit 5:
org.junit.jupiter.api.Test
推荐阅读
- java - 我有一个 mysql 数据库和一个表,我将它编码为 json,当我在浏览器中运行 php 文件时,当我从 android 中获取它时,它的一些不同
- android - 我已经使用 ChannelDescriptor 来获取频道,然后调用 getUnconsumedMessagesCount 但在 twilio 聊天中仍然为 android sdk 获得 0 计数
- r - geom_label 没有相应地缩放以在 Shiny 中绘图
- d3.js - 如何在水平条形图中移动刻度标签?
- python - 掷骰子命令问题
- javascript - D3.json Node.js 服务器的意外令牌
- android - 将 View.GONE 更改为 View.VISIBLE 后以编程方式构建覆盖布局仍然没有得到正确的位置
- reactjs - 动态创建内容反应
- node.js - 获取当前脚本的控制台输出
- javascript - 如何在 React Native 中隐藏和显示导航栏?