java - JUnit 测试总是返回 null
问题描述
我正在为我的代码编写一个 JUnit 测试用例,但 Mockito 总是返回null
@Component
public class ConnectorImpl {
public String returnString(String inte) {
String x = testing();
return x;
}
public String testing() {
return "test";
}
}
测试班
@RunWith(MockitoJUnitRunner.class)
public class ConnectorImplTest {
@Mock public ConnectorImpl connector;
@Test
public void testLoggedInRefill() throws Exception {
Mockito.when(connector.testing()).thenReturn("test");
String x = connector.returnString("8807");
assertEquals("8807", x);
}
}
当我打电话时connector.returnString("8807");
,它总是返回null
。有什么我做错了吗?我是 JUnit 的新手。
解决方案
根据您的代码,您正在嘲笑您的ConnectorImpl
所以它是一个空对象,这意味着它取决于你when(...).then(...)
想要测试的任何功能。
顺便说一句 - 如果您正在测试,ConnectorImpl
那么您不应该模拟它,而是实际使用真正的 bean。您应该模拟ConnectorImpl
正在使用的 bean。
所以我建议你的代码看起来可能是这样的:
@RunWith(MockitoJUnitRunner.class)
public class ConnectorImplTest {
public ConnectorImpl connector = new ConnectorImpl(...);
@Test
public void testLoggedInRefill() throws Exception {
String x = connector.returnString("8807");
assertEquals("8807", x);
}
}
推荐阅读
- javascript - 如何使用触摸板和鼠标滚轮事件区分捏合或放大/缩小
- php - Yii2:尝试使用 ajax 生成 csv 文件
- sql - oracle如何合并两列
- mysql - 在 Pentaho 报表设计器中使用参数生成 SQL 查询
- autohotkey - 使用自动热键 gui 在任何应用程序上输入文本
- javascript - 即使将数据(数组)提供给组件,FlatList 也会呈现为空白
- java - 现有证书的 SSL 异常
- c# - 在不同选项卡中运行多个应用程序页面时发生的跨会话问题
- javascript - 使用 jquery 从 datepicker 中选择日期时显示日期名称
- c++ - 我如何在 const char* malloc 之后释放内存?