模拟复杂类型的方法

时间:2019-04-25 18:20:18

标签: java mockito

模仿具有复杂类型的方法时,在Java中返回 @FirstRow int = 10 --will be set by application ,@LastRow int = 15 --will be set by application ,@FileName varchar(100) = NULL ,@CreatedDate date = NULL ,@CreatedBy varchar (50) = NULL AS BEGIN INSERT INTO TABLE(TABLE_ID, FILENAME, CREATED_BY, CREATED_DATE) VALUES (@FirstRow, @FileName, @CreatedBy, @CreatedDate) END

null
public void sendRequest(OnlineRequest request) {
        OnlineResponse response = client.handleRequest(request);
        System.out.println( response);
}

1 个答案:

答案 0 :(得分:0)

如果我的理解正确,那么您的问题是System.out.println(response);打印null吗?

这很可能是由于未使用您期望的client.handleRequest()来调用request的事实。这可能是您未提供给我们的代码中的某个错误,或者可能仅是由于OnlineRequest没有实现equals / hash-code的事实,所以when()永远不会之所以触发,是因为未与您在单元测试中使用的OnlineRequest实例完全相同。

您可能希望测试是否handleRequest与您期望的对象完全匹配。可以使用verify()

verify(client).handleRequest(request);

在您的单元测试中。这也取决于equals / hash-code的实现来确定request是否为预期参数。