【发布时间】:2020-06-03 12:31:58
【问题描述】:
使用结果元数据具有一个功能。
ResultSet rs // coming from some sql query.
ResultSetMetaData rsmd = rs.getMetaData();
if(rsmd.getColumnName(1).toString().equalsIgnoreCase("something"))
{
//do something here
}
我以前模拟过结果集,但不知道如何模拟结果元数据或将所需的列名放入结果集中? 我试过了:
ResultSetMetaData rsmd = Mockito.mock(ResultSetMetaData.class);
Mockito.when(rsmd.getColumnName(1)).thenReturn("Somwthing");
但是没用
【问题讨论】:
-
当您说“没用”时,它是否抛出了
Exception,或者只是没有返回预期的“Somwthing”? -
它没有返回 Somwthing
-
如果在设置
rsmd变量后在“使用结果元数据的函数”中放置断点,并查看那里rsmd的调试信息,以及测试类中的调试信息(您应该能够进一步单击调用堆栈以进入您的测试方法)它们是同一个实例吗? -
我认为两者都是不同的实例,我在测试类中用来模拟的那个显示了一些 id,但主要方法显示 rsmd 为 null
标签: java spring-boot mockito junit4 maven-surefire-plugin