Trong bài viết trước mình đã hướng dẫn mọi người cách test GET và POST của controller trong SpringBoot với @WebMvcTest và ở bài viết này mình sẽ hướng dẫn cách test 2 phương thức PUT và DELETE với @WebMvcTest

Chúng ta lại chuẩn bị thư viện và class test như bài viết mình đã hướng dẫn lần trước tại đây

Sau khi đã chuẩn bị xong các thư viện và class cần thiết chúng ta bắt đầu test PUT trong controller như sau:

Để test phương thức update thì ta cần gọi đến 2 phương thức findById và save của ExamService thông qua given(…).willReturn(), khi phương thức findById được gọi sẽ tạo ra một mock Object là exam1 và sử dụng phương thức save để lưu lại mock Object này vì vậy để test update ta cần phải gửi request gồm có id và exam1 dạng Json và respone trả về phải là trạng thái 200 và exam1 dạng Json sau khi update.

 Còn đối với phương thức delete để xóa phương thức này thì ta cũng phải sử dụng đến phương thức findById của ExamService như sau:

Tương tự như phương thức update ta vẫn sử dụng given() cho phương thức findById để tạo mock Object exam1 khi tìm kiếm theo exam có id là 1. Nhưng ở đây chúng ta cần sử dụng phương thức tĩnh doNothing() của Mockito thay vì dung given() cho phương thức remove() vì với phương thức doNothing() thì hàm remove() vẫn sẽ được gọi nhưng nó sẽ không làm gì cả, không làm ảnh hưởng đến các bộ test trong class.

Author: Nguyễn Minh Quân

Đăng ký nhận bộ tài liệu kỹ năng dành cho lập trình viên (video hướng dẫn + slide) tại đây


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.