gpt4 book ai didi

java - 在 Mockito 中同时使用 doNothing() 和 times()

转载 作者:行者123 更新时间:2023-11-30 02:09:43 33 4
gpt4 key购买 nike

我想什么都不做29次,当发生30次调用时,然后抛出ArithmeticException。但我找不到任何可以设置 TIMES 属性的地方。这是我的想象:

@Mock
DAOclass dao;

@Test(expected = ArithmeticException.class)
public void AAA() throws SQLException {
doThrow(ArithmeticException.class).when(dao,times(30)).methodABC();
for (int i = 0; i < 30; i++) {
dao.nothing();
}
}

但是当然when(dao,times(30))是无意义的,因为我无法在when block 添加times(30)作为第二个参数。有人知道这个问题的可选解决方案是什么吗?

顺便说一句。我的目标绝对不是手动写入 30 次 doNothing().doNothing().doNothing.... doThrow(...).when(...)

最佳答案

你可以尝试:

when(someMock.someMethod()).thenAnswer(new Answer() {
private int count = 0;
public Object answer(InvocationOnMock invocation) {
if (count++ == 30){
...do something...
}
...do something...
}
});

关于java - 在 Mockito 中同时使用 doNothing() 和 times(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50441114/

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