gpt4 book ai didi

java - Mockito:如何模拟方法,其结果取决于其参数之一?

转载 作者:行者123 更新时间:2023-12-02 19:25:24 26 4
gpt4 key购买 nike

有没有办法将参数传递给模拟函数并在内部使用该参数值。示例(通知名称作为参数):

Mockito.when(clientRepo.registerNewClient(Mockito.any(String.class) as name))    .thenReturn(        dslContext            .insertInto(CLIENT)            .set(CLIENT.CLIENT_NAME, name)            .execute());

有办法做到这一点吗?

最佳答案

您需要使用thenAnswer,并从InitationOnMock获取您的参数。

final Repo clientRepo = Mockito.mock(Repo.class);
Mockito.when(clientRepo.registerNewClient(Mockito.any(String.class)))
.thenAnswer(
(Answer<Client>)
invocationOnMock -> new Client(
invocationOnMock
.getArgumentAt(0, String.class)
.toUpperCase()
)
);
Assertions.assertEquals(
clientRepo.registerNewClient("fff"), new Client("FFF")
);

关于java - Mockito:如何模拟方法,其结果取决于其参数之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62480035/

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