2010-05-27 32 views
7

Mockito api cung cấp phương pháp:Mockito xác minh không tương tác nhưng bỏ qua getters

Mockito.verifyNoMoreInteractions(someMock); 

nhưng là nó có thể trong Mockito để tuyên bố rằng tôi không muốn có nhiều tương tác với một mô hình được đưa ra với các ngoại lệ tương tác với nó phương pháp getter?

Kịch bản đơn giản là trường hợp trong đó tôi kiểm tra SUT chỉ thay đổi các thuộc tính nhất định của một mẫu giả định và để lại các thuộc tính khác chưa được khai thác.

Trong ví dụ tôi muốn thử nghiệm UserActivationService rằng những thay đổi thuộc tính Active trên một thể hiện của lớp người dùng nhưng does't làm gì để tài sản như Vai trò, mật khẩu, AccountBalance vv

+0

Xem thêm http://stackoverflow.com/questions/12013138/mockito-verify-no-more-interactions-with-any-mock – Vadzim

Trả lời

13

Không chức năng này không phải là hiện tại Mockito . Nếu bạn cần nó thường xuyên, bạn có thể tạo ra nó cho mình bằng cách sử dụng wizzardry phản ánh mặc dù đó sẽ là một chút đau đớn.

Đề nghị của tôi sẽ được xác minh số lượng tương tác trên những phương pháp bạn không muốn được gọi là quá thường xuyên sử dụng 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(); 
} 

Tất nhiên sự nhạy cảm của thiết kế WorldLeader API có thể gây tranh cãi, nhưng như một ví dụ nó nên làm.

Các vấn đề liên quan