8

Mockito api はメソッドを提供します:

Mockito.verifyNoMoreInteractions(someMock);

しかし、ゲッターメソッドとの相互作用を除いて、特定のモックとの相互作用をこれ以上望んでいないとMockitoで宣言することは可能ですか?

単純なシナリオは、SUT が特定のモックの特定のプロパティのみを変更し、他のプロパティを未開発のままにすることをテストするシナリオです。

例では、 UserActivationService がクラス User のインスタンスのプロパティ Active を変更することをテストしたいと思いますが、Role、Password、AccountBalance などのプロパティには何もしません。

4

1 に答える 1

16

いいえ、この機能は現在Mockitoにはありません。頻繁に必要な場合は、反射ウィザードを使用して自分で作成できますが、少し面倒です。

私の提案は、以下を使用して、あまり頻繁に呼び出されたくないメソッドの相互作用の数を確認することです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設計の感性については議論の余地があるかもしれませんが、例としてはそうすべきです。

于 2010-06-13T08:56:45.603 に答える