gpt4 book ai didi

testing - EasyMock - 如何重置模拟但保持预期?

转载 作者:行者123 更新时间:2023-11-28 19:45:17 24 4
gpt4 key购买 nike

是否可以在同一个模拟对象实例上重新定义特定的期望?

假设我有这个验证 OK 的测试:

List<String> foo = createMock(List.class);
expect(foo.get(1)).andReturn("Wibble").once();
expect(foo.size()).andReturn(1).once();
replay(foo);
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);

然后我想做的是重置模拟,保持所有定义的期望,但改变其中一个,比如:

reset(foo);
// Redefine just one of the two expectations
expect(foo.get(1)).andReturn("Wobble").once();
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);

目前不起作用,因为 foo.size 在重置调用后未定义。

一定是一个很好的方法来做到这一点,而不是每次都重建期望?

提前致谢

最佳答案

你能把期望写成一个函数,并将期望的参数作为参数传递吗?这是我以前做过的事情。

private List<String> setExpectations(String expectedString) {
List<String> foo = createMock(List.class);
expect(foo.get(0)).andReturn(expectedString).once();
expect(foo.size()).andReturn(1).once();
replay(foo);
return foo;
}

另外:返回第零个字符串,是吗?

关于testing - EasyMock - 如何重置模拟但保持预期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100859/

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