Sử dụng spy trong mockito
TIL
781
Java
167
White

huydx viết ngày 06/05/2016

Sử dụng spy trong mockito

Thông thường bạn hay sử dụng Mockito#mock khi test sử dụng mockito, tuy nhiên mock có một nhược điểm là, nó không test trên real object, mà tạo ra một object "ảo" rồi instrument các method mà bạn muốn vào object ảo đó.
Tuy nhiên khi bạn chỉ muốn instrument một vài method, sau đó delegate toàn bộ methods còn lại vào object "thật" thì có thể sử dụng spy method của mockito

Một ví dụ đơn giản:

@Test
public void whenSpyingOnList_thenCorrect() {
    List<String> list = new ArrayList<String>();
    List<String> spyList = Mockito.spy(list);

    spyList.add("one");
    spyList.add("two");

    Mockito.verify(spyList).add("one");
    Mockito.verify(spyList).add("two");

    assertEquals(2, spyList.size());
}

Bạn có thể thấy method add được gọi thực sự trên list và size của nó được tăng lên thành 2.

Ngoài sử dụng trực tiếp static method spy, bạn có thể dùng @Spy annotation.
Tuy nhiên để sử dụng annotation thì bạn cần chạy test sử dụng @RunWith(MockitoJUnitRunner.class)

06-05-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

huydx

118 bài viết.
1253 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
226 20
Một ngày đẹp trời, bạn quyết định viết một dịch vụ web dự định sẽ làm thay đổi cả thế giới. Dịch vụ của bạn sẽ kết nối tất cả các thiết bị di động ...
huydx viết hơn 2 năm trước
226 20
White
194 15
Introduction (Link) là một cuộc thi ở Nhật, và cũng chỉ có riêng ở Nhật. Đây là một cuộc thi khá đặc trưng bởi sự thú vị của cách thi của nó, những...
huydx viết hơn 4 năm trước
194 15
White
151 15
Happy programmer là gì nhỉ, chắc ai đọc xong title của bài post này cũng không hiểu ý mình định nói đến là gì :D. Đầu tiên với cá nhân mình thì hap...
huydx viết 6 năm trước
151 15
Bài viết liên quan
White
0 5
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết gần 3 năm trước
0 5
White
4 0
I used Spring boot, Hibernate few times back then at University, I'v started using it again recently. In this (Link), I want to check how Spring J...
Rey viết 2 năm trước
4 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
118 bài viết.
1253 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!