Tags:

Sự khác nhau giữa mockito-core và mockito-all

Mockito là một mock-framework rất phổ biến trong Java testing, nhưng nếu đây là lần đầu tiên bạn tiếp xúc với nó thì có thể bạn sẽ cảm thấy hơi bối rối vì nó có nhiều hơn một dependency để lựa chọn. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu sự khác biệt giữa mockito-core và mockito-all để xem đâu là dependency mà chúng ta cần.

mockito-core

Mockito-core là artifact chính của Mockito, nó chứa cả API và implementation của thư viện. Chúng ta có thể sử dụng nó trong maven bằng cách

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.3.3</version>
</dependency>

Với dependency này chúng ta đã có thể bắt đầu làm quen với các tính năng và học cách sử dụng thư viện này rồi.

mockito-all

Trong hầu hết các dự án thì mockito-core thường sẽ được sử dụng chung với 2 thư viện khác đó là hamcrest objenesis. Chính vì vậy mockito-all được phát hành bao gồm 2 thư viện này, chúng ta không cần phải thêm riêng lẽ từng thư viện như khi sử dụng mockito-core.

Dưới đây là cấu trúc của mockito-all

mockito-all.jar
|-- org
|   |-- hamcrest
|   |-- mockito
|   |-- objenesis

Có vẽ như thư gói dependency này khá thuận tiện, vậy chúng ta có nên sử dụng luôn mockito-all mà bỏ qua mockito-core luôn không nhỉ? 

Phiên bản mới nhất của mockito-all là phiên bản 1.x được phát hành vào năm 2014. Mockito cho biết họ sẽ không phát hành thêm một phiên bản nào của mockito-all nữa. Việc sử dụng mockito-all là không cần thiết vì chúng ta có thể tích hợp những thư viện này với nhau một cách riêng lẻ.

Tóm lược

Như đã trình bày ở trên thì chúng ta nên tránh việc sử dụng mockito-all vì dependency này hiện không còn được phát triển tiếp. Thay vào đó hãy sử dụng mockito-core và kết hợp với hamcrest hoặc objenesis tùy theo nhu cầu.

Nguồn:

https://www.baeldung.com/mockito-core-vs-mockito-all

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x