gpt4 book ai didi

java - JMock - 具有不同参数的多个调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:04 27 4
gpt4 key购买 nike

我要测试的方法是用不同的参数调用模拟方法:

public void methodToTest(){
getMock().doSomething(1);
getMock().doSomething(2);
getMock().doSomething(3);
}

在我的单元测试中,我想知道 methodToTest 是否真的使用这些参数调用这些方法。这是我写的代码:

@Test
public void myMockTest(){
oneOf(mock).doSomething(1);
oneOf(mock).doSomething(2);
oneOf(mock).doSomething(3);
}

在 (2) 处,我收到“意外调用”- 好像它无法区分不同的参数。所以我试过那个:

exactly(3).of(mock).doSomething(with(Matchers.anyOf(same(1), same(2), same(3))));

但这也没有达到我的预期。

最后,这个成功了:

exactly(3).of(mock).doSomething(with(any(Integer.class)));

所以我知道,我的方法用任何整数调用了 3 次。有什么方法可以确保正是我通过的参数?

最佳答案

您是否用检查 block 包围了期望?

context.checking(new Expectations() {{
oneOf(mock).doSomething(1);
oneOf(mock).doSomething(2);
oneOf(mock).doSomething(3);
}});

此外,您是否知道 jmock 不会强制执行序列,除非您明确这样做?

关于java - JMock - 具有不同参数的多个调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853087/

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