我有以下方法
public ResultScanner getScanner(Scan scan) {
Table table = getTableInstance("Sampletable");
return table.getScanner(scan);
}
为此我编写了以下junit测试代码
Connection mockconnection = PowerMockito.mock(Connection.class);
Table mocktable = PowerMockito.mock(Table.class);
PowerMockito.when(mockconnection.getTable(TableName.valueOf(Mockito.anyString())))
.thenReturn(mocktable);
Scan mockedScan = PowerMockito.mock(Scan.class);
ResultScanner mockrs = PowerMockito.mock(ResultScanner.class);
PowerMockito.when(mocktable.getScanner(mockedScan)).thenReturn(mockrs);
在测试该方法时
该声明
Table table = getTableInstance("Sampletable");
运行良好并给出模拟表对象,但语句
table.getScanner(scan);
返回空值。
请在下面的链接中找到Table接口的源代码
http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hbase/hbase-client/1.1.1/org/apache/hadoop/hbase/client/Table.java http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hbase/hbase-client/1.1.1/org/apache/hadoop/hbase/client/Table.java
请指导我这个?
将测试用例的最后一行替换为
PowerMockito.when(mocktable.getScanner(Mockito.any(Scan.class))).thenReturn(mockrs);
应该有效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)