gpt4 book ai didi

java - 模拟方法返回 null

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:19 25 4
gpt4 key购买 nike

我有以下方法

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接口(interface)的源代码

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);

它应该工作

关于java - 模拟方法返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41165788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com