【问题标题】:Mockito - how to access .when argument in .thenReturn method?Mockito - 如何访问 .thenReturn 方法中的 .when 参数?
【发布时间】:2020-12-04 13:17:48
【问题描述】:

当我的getter 对象上的.get() 方法被调用时,它通常会向API 发送一个请求。对于 Getter 对象的模拟版本,我希望 .getFile() 返回使用相同参数调用 reader.readLocalFile() 的结果(以避免发出真正的 HTTP 请求)。

我目前的代码是这样的:

Mockito.when(mockGetter.get(file1)).thenReturn(reader.readLocalFile(file1));
Mockito.when(mockGetter.get(file2)).thenReturn(reader.readLocalFile(file2));
Mockito.when(mockGetter.get(file3)).thenReturn(reader.readLocalFile(file3));
(etc.)

其中file1file2file3 是字符串文字。

是否可以让它看起来更像下面的样子?

Mockito.when(mockGetter.get(someString)).thenReturn(reader.readLocalFile(thatSameString));

【问题讨论】:

    标签: java spring-boot testing mocking mockito


    【解决方案1】:

    Mockito 答案可用于访问模拟的参数,大致如下:

    Answer<String> answer = inv -> reader.readLocalFile(inv.getArgument(0));
    doAnswer(answer).when(mockGetter).get(anyString());
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多