深圳网站制作公司好的建设网站公司哪家好
web/
2025/10/3 18:48:44/
文章来源:
深圳网站制作公司,好的建设网站公司哪家好,wordpress 主题 2016,电子商务网站建设及维护mockito java这篇文章展示了如何使用Mockito模拟java.sql.ResultSet 。 它可用于帮助对ResultSet进行操作的单元测试代码#xff08;例如ResultSetExtractor #xff09;而无需依赖外部数据源。 您可以通过提供列名列表和2D数据数组来创建MockResultSet 。 例如#xff1a;… mockito java 这篇文章展示了如何使用Mockito模拟java.sql.ResultSet 。 它可用于帮助对ResultSet进行操作的单元测试代码例如ResultSetExtractor 而无需依赖外部数据源。 您可以通过提供列名列表和2D数据数组来创建MockResultSet 。 例如 var rs MockResultSet.create(new String[] { name, age }, //columnsnew Object[][] { // data{ Alice, 20 },{ Bob, 35 },{ Charles, 50 }}); MockResultSet的代码如下所示也可以在我的GitHub Repository中找到 。 请注意我仅模拟了诸如next getString和getObject类的一些方法但是通过遵循相同的模式来模拟其余方法非常容易。 public class MockResultSet {private final MapString, Integer columnIndices;private final Object[][] data;private int rowIndex;private MockResultSet(final String[] columnNames,final Object[][] data) {// create a map of column name to column indexthis.columnIndices IntStream.range(0, columnNames.length).boxed().collect(Collectors.toMap(k - columnNames[k],Function.identity(),(a, b) -{ throw new RuntimeException(Duplicate column a); },LinkedHashMap::new));this.data data;this.rowIndex -1;}private ResultSet buildMock() throws SQLException {final var rs mock(ResultSet.class);// mock rs.next()doAnswer(invocation - {rowIndex;return rowIndex data.length;}).when(rs).next();// mock rs.getString(columnName)doAnswer(invocation - {final var columnName invocation.getArgumentAt(0, String.class);final var columnIndex columnIndices.get(columnName);return (String) data[rowIndex][columnIndex];}).when(rs).getString(anyString());// mock rs.getObject(columnIndex)doAnswer(invocation - {final var index invocation.getArgumentAt(0, Integer.class);return data[rowIndex][index - 1];}).when(rs).getObject(anyInt());final var rsmd mock(ResultSetMetaData.class);// mock rsmd.getColumnCount()doReturn(columnIndices.size()).when(rsmd).getColumnCount();// mock rs.getMetaData()doReturn(rsmd).when(rs).getMetaData();return rs;}/*** Creates the mock ResultSet.** param columnNames the names of the columns* param data* return a mocked ResultSet* throws SQLException*/public static ResultSet create(final String[] columnNames,final Object[][] data)throws SQLException {return new MockResultSet(columnNames, data).buildMock();}
}翻译自: https://www.javacodegeeks.com/2018/09/java-mocking-resultset-using-mockito.htmlmockito java
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86367.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!