gpt4 book ai didi

java - Mockito 可以根据方法调用时的值来验证参数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:46 25 4
gpt4 key购买 nike

我有一个Foo类是 SUT 和 Bar类,它是它的合作者。 Foo来电 run(List<Object> values)关于Bar以“expectedList”作为参数。然后,Foo将向此 List 添加更多元素这样它的状态就会与调用 run() 时的状态不同。这是我的测试用例。

@Test
public void testFoo() {
Bar collaborator = spy(new Bar());
Foo sut = new Foo(collaborator);
verify(collaborator).run(expectedList);
}

请注意,协作者实际上是一个 spy 对象而不是一个模拟对象。这个测试用例将会失败,因为即使 run()被调用时参数等于 expectedList ,此后被修改,其当前值不再等于 expectedList 。然而,这是它应该工作的方式,所以我想知道是否有一种方法可以让 Mockito 在调用方法时存储参数快照,并根据这些值而不是最新值验证它们。

最佳答案

调用方法时使用Answer检查参数的值。如果值错误,您可以在 Answer 中抛出 AssertionError,或者您可以存储该值,并在最后执行断言。

关于java - Mockito 可以根据方法调用时的值来验证参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38660517/

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