gpt4 book ai didi

unit-testing - Mockito 不再验证交互,但省略 getter

转载 作者:行者123 更新时间:2023-12-04 02:47:53 24 4
gpt4 key购买 nike

Mockito api 提供了方法:

Mockito.verifyNoMoreInteractions(someMock);

但是在 Mockito 中是否有可能声明除了与其 getter 方法的交互之外,我不希望与给定的模拟进行更多交互?

一个简单的场景是我测试 SUT 仅更改给定模拟的某些属性而其他属性未开发的场景。

在示例中,我想测试 UserActivationService 是否更改了类 User 实例上的 Active 属性,但不对 Role、Password、AccountBalance 等属性执行任何操作。

最佳答案

不,此功能目前不在 Mockito 中。如果你经常需要它,你可以使用反射 wizzardry 自己创建它,尽管这会有点痛苦。

我的建议是使用 VerificationMode 验证您不希望过于频繁调用的方法的交互次数。 :

@Test
public void worldLeaderShouldNotDestroyWorldWhenMakingThreats() {
new WorldLeader(nuke).makeThreats();

//prevent leaving nuke in armed state
verify(nuke, times(2)).flipArmSwitch();
assertThat(nuke.isDisarmed(), is(true));
//prevent total annihilation
verify(nuke, never()).destroyWorld();
}

当然,WorldLeader API 设计的敏感性可能值得商榷,但作为一个例子,它应该这样做。

关于unit-testing - Mockito 不再验证交互,但省略 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2920526/

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