作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试模拟(Spring boot、JUnit、Oracle)
jdbcTemplate.execute(CallableStatementCreator, CallableStatementCallback);
public class ExceptionTest
{
@Autowired
private SecurityDAOImpl securityDAOImplMock;
@Mock
private JdbcTemplate jdbcTemplate;
@Autowired
private JdbcTemplate resetJdbcTemplate;
@Before
public void init() throws Exception
{
securityDAOImplMock = spy(new SecurityDAOImpl());
MockitoAnnotations.initMocks(this);
}
@SuppressWarnings("unchecked")
@Test(expected = SecurityDAOException.class)
public void testUpdateProfileException()
{
DataAccessException dataAccessException = new DataAccessException("Mock Exception",
new Exception("Mocked DataAccessException"))
{
private static final long serialVersionUID = 1L;
};
ReflectionTestUtils.setField(securityDAOImplMock, "jdbcTemplate", jdbcTemplate);
doThrow(dataAccessException).when(jdbcTemplate).execute(any(), any());
securityDAOImplMock.isTooManyFailedAttempt("", 7, "", "");
}
@After
public void reset()
{
ReflectionTestUtils.setField(securityDAOImplMock, "jdbcTemplate", resetJdbcTemplate);
}
}
我收到以下编译时异常:
The method execute(PreparedStatementCreator, PreparedStatementCallback<Object>) is ambiguous for the type
在这条线上
doThrow(securityDAOException).when(jdbcTemplate).execute(any(), any());
如何模拟 jdbcTemplate.execute(callableStatementCreator, callableStatementCallback)。如何使其工作?
最佳答案
方法JdbcTemplate.execute()
是overloaded .
因此,当您使用匹配器 any()
模拟它时,编译器根本不知道您实际指的是哪个方法并抛出错误。
要修复此问题,请在匹配器中提供一个类来解决此歧义。
例如,如果你想模拟
JdbcTemplate.execute(PreparedStatementCreator psc, PreparedStatementCallback<T> action)
使用
doThrow(securityDAOException).when(jdbcTemplate).execute(any(PreparedStatementCreator.class), any(PreparedStatementCallback.class));
关于java - 如何模拟 jdbcTemplate.execute(callableStatementCreator, callableStatementCallback);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57191211/
嗨,我是 spring 的新手。我尝试使用 CallableStatementCreator 访问存储的过程,但我遇到了错误。 Caused by: org.springframework.beans
我正在尝试模拟(Spring boot、JUnit、Oracle) jdbcTemplate.execute(CallableStatementCreator, CallableStatementCa
我是一名优秀的程序员,十分优秀!