gpt4 book ai didi

java - Mockito 在使用 anystring() 时可以正常工作,但在 @setup 方法中将值设置为对象时则不行

转载 作者:行者123 更新时间:2023-12-01 10:35:36 25 4
gpt4 key购买 nike

@InjectMocks

用于包含 jdbc 调用的类。

@Mock 

jdbc 模板

@模拟私有(private) DataAccessException dataAccessException;

工作正常:

when(jdbcTemplate.update(anyString(), anyString(), anyString(), anyString())).thenThrow(dataAccessException);

没有工作:

 when(jdbcTemplate.update("revoke", "1", "1", "JA122")).thenThrow(dataAccessException);

我是测试和 Mockito 的新手。谁能解释一下为什么会出现这种行为?

最佳答案

假设您正在模拟 Spring JDBC JdbcTemplateupdate方法接收一个可变参数,您使用四个字符串调用它。在第二个示例中,您的第二个和第三个参数是 int 文字,因此参数不匹配,因此您的执行与模拟的期望不匹配。只需将它们转换为字符串文字就可以了:

when(jdbcTemplate.update("revoke", "1", "1", "JA122")).
thenThrow(dataAccessException);`

关于java - Mockito 在使用 anystring() 时可以正常工作,但在 @setup 方法中将值设置为对象时则不行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758824/

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