Khởi tạo đối tượng Mock sử dụng annotation @Mock của Mockito

Trong bài viết trước Tổng quan về Mock trong Unit Test, mình đã giới thiệu với các bạn một cách để mock một đối tượng sử dụng class Mockito, Mockito còn hỗ trợ chúng ta một cách nữa để khởi tạo đối tượng Mock đó chính là sử dụng annotation @Mock. Cụ thể như thế nào? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này các bạn nhé!

Đầu tiên, mình sẽ tạo mới một Maven project để làm ví dụ:

Khởi tạo đối tượng Mock sử dụng annotation @Mock của Mockito

Với Mockito và JUnit dependencies như sau:

Với JUnit 5, để chạy được Unit Test với Maven, chúng ta cần khai báo plugin maven-surefire-plugin của Maven với latest version như sau:

Và compile source với target sử dụng Java 8 trở đi:

Trong bài viết này, mình cũng tạo một ứng dụng tương tự như bài viết trước nhưng lúc này class Calculation sẽ định nghĩa một phương thức để tính hiệu của 2 số.

Còn class Application sẽ có một method sử dụng phương thức của class Calculation để tính hiệu của 2 số, nếu kết quả lớn hơn 0 thì sẽ trả về true, ngược lại sẽ là false.

Giờ mình sẽ viết Unit Test cho class Application sử dụng đối tượng mock của class Calculation với đối tượng mock của class Calculation được tạo bằng cách sử dụng annotation @Mock.

Với annotation @Mock, để khởi tạo đối tượng mock cho class Calculation, đầu tiên chúng ta cần khai báo class Calculation với annotation @Mock bên trong class ApplicationTest như sau:

Tiếp theo, chúng ta cần khai báo MockitoExtension.class với annotation @ExtendWith của JUnit 5 bên trên class ApplicationTest như sau:

Với extension này, Mockito sẽ scan class ApplicationTest của chúng ta để lấy hết tất cả các class mà chúng ta khai báo với annotation @Mock để thực hiện việc tạo mock object.

Code để test phương thức check() của class Application như sau:

Bây giờ thì chúng ta có thể chạy lại Unit Test để kiểm tra kết quả rồi nhé các bạn!

Kết quả:

5/5 - (1 bình chọn)

Add Comment