Trang chủ » Blog » Hướng dẫn viết test Controller (có Security) trong SpringBoot với annotation @SpringBootTest (Phần 1)

Hướng dẫn viết test Controller (có Security) trong SpringBoot với annotation @SpringBootTest (Phần 1)

bởi CodeGym | 06/12/2023 17:31 | Blog
  • Để tiến hành test Controller trong SpringBoot trước hết ta phải thêm thư viện spring-boot-starter-test, spring-security-test, spring-boot-starter-web, spring-security-test

  • Cấu hình file SecurityConfig

  • Tiến hành test controller với @SpringBootTest như sau

Đầu tiên tạo một file có tên là ExamControllerTest:

Sau khi tạo xong class trên, ta thêm các mock object vào trong class như hình dưới đây:

  • Bây giờ ta sẽ tiến hành viết đoạn test đầu tiên với phương thức findAll() trong ExamController, ở đoạn code bên dưới thì mình sử dụng phương thức mvc.perform() cho việc test, với phương thức này thì các bạn có thể so sánh kết quả mình mong muốn với kết quả thực tế thu được

Trong đoạn test trên sử dụng @WithMockUser có value là admin và roles là Admin sẽ tạo cho ta một mock user có tên là admin có role ADMIN để truy cập đến đoạn url ở trên

  • Sau khi viết đoạn test phương thức findAll trên được pass thì chúng ta tiếp tục tiến hành viết đoạn test với phương thức tạo mới nhưng trước tiên ta phải tạo một phương thức static có tên là asJsonString để chuyển đổi chuỗi sang dạng Json:

  • Sau đó ta tiến hành viết test cho phương thức save như sau:

Đoạn code trên được test với Role là ADMIN nên sẽ được kết quả trả về là 201

  • Test phương thức save với role là User:

Vì role user không có quyền tạo mới Exam nên kết quả trả về mà mình mong muốn sẽ là 403

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

Download - Giáo trình thuật toán

7 + 7 =

Tags:

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

11 + 5 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM