Kiểm tra tham số trong Junit là gì?
Kiểm tra tham số hóa là thực hiện lặp đi lặp lại cùng một bài kiểm tra bằng cách sử dụng các giá trị khác nhau. Nó giúp nhà phát triển tiết kiệm thời gian trong việc thực hiện cùng một bài kiểm tra, chỉ khác nhau về đầu vào và kết quả mong đợi của họ.
Sử dụng kiểm tra tham số, người ta có thể thiết lập một phương pháp kiểm tra lấy dữ liệu từ một số nguồn dữ liệu.
Hãy xem xét một bài kiểm tra đơn giản để tính tổng các số khác nhau. Mã có thể trông giống như -
Cách tiếp cận trên dẫn đến rất nhiều dư thừa.
Chúng tôi cần một cách tiếp cận đơn giản và. Sử dụng kiểm tra tham số hóa, bạn có thể chỉ cần thêm một phương thức để nhập 10 đầu vào dữ liệu và kiểm tra của bạn sẽ tự động chạy 10 lần.
Các bước để tạo một bài kiểm tra JUnit được tham số hóa
Đoạn mã sau đây cho thấy một ví dụ cho một bài kiểm tra tham số hóa. Nó kiểm tra phương thức sum () của lớp Arithmetic:
Bước 1) Tạo một lớp học. Trong ví dụ này, chúng ta sẽ nhập hai số bằng cách sử dụng phương thức sum (int, int) sẽ trả về tổng các số đã cho
Bước 2) Tạo một lớp kiểm tra tham số hóa
Giải thích mã
- Dòng mã 11: Chú thích lớp thử nghiệm của bạn bằng @runWith (Parameterized.class).
- Dòng mã 13: Khai báo biến 'firstNumber' là private và nhập là int.
- Dòng mã 14: Khai báo biến 'secondNumber' là private và nhập là int.
- Dòng mã 15: Khai báo biến 'dự kiến' là riêng tư và nhập là int.
- Dòng mã 16: Khai báo biến 'airthematic' là private và nhập là Airthematic.
@RunWith (class_name.class): Chú thích @RunWith được sử dụng để chỉ định tên lớp người chạy của nó. Nếu chúng tôi không chỉ định bất kỳ loại nào làm tham số, thời gian chạy sẽ chọn BlockJunit4ClassRunner theo mặc định.
Lớp này chịu trách nhiệm cho các bài kiểm tra chạy với một phiên bản kiểm tra mới. Nó chịu trách nhiệm gọi các phương thức vòng đời của JUnit như thiết lập (liên kết tài nguyên) và teardown (giải phóng tài nguyên).
Để tham số hóa, bạn cần chú thích bằng @RunWith và chuyển .class bắt buộc để được kiểm tra
Bước 3) Tạo một phương thức khởi tạo lưu trữ dữ liệu thử nghiệm. Nó lưu trữ 3 biến
Bước 4) Tạo một phương thức tĩnh để tạo và trả về dữ liệu thử nghiệm.
Dòng Mã 32,33: Tạo mảng hai chiều (cung cấp các tham số đầu vào để cộng). Sử dụng phương thức asList, chúng tôi chuyển đổi dữ liệu thành một kiểu Danh sách. Vì, kiểu trả về của đầu vào phương thức là tập hợp.
Dòng mã 30: Sử dụng chú thích @Parameters để tạo một tập hợp dữ liệu đầu vào để chạy thử nghiệm của chúng tôi.
Phương thức tĩnh được xác định bởi chú thích @Parameters trả về một Bộ sưu tập trong đó mỗi mục nhập trong Bộ sưu tập sẽ là dữ liệu đầu vào cho một lần lặp lại kiểm tra.
Hãy xem xét Elemenent
{1,2,3}
Đây
firstNumber = 1
secondNumber = 2
dự kiếnResult = 3
Ở đây, mỗi phần tử mảng sẽ được chuyển cho hàm tạo, từng phần tử một vì lớp được khởi tạo nhiều lần.
Bước 5) Mã hoàn chỉnh
Giải thích mã:
- Dòng mã 25: Sử dụng chú thích @Before để thiết lập tài nguyên (Airthematic.class tại đây). Chú thích @Before được sử dụng ở đây để chạy trước mỗi trường hợp thử nghiệm. Nó chứa điều kiện tiên quyết của bài kiểm tra.
- Dòng mã 36: Sử dụng chú thích @Test để tạo thử nghiệm của chúng tôi.
- Dòng mã 39: Tạo một câu lệnh khẳng định để kiểm tra xem tổng của chúng ta có tương đương với những gì chúng ta mong đợi hay không.
Bước 6) Tạo một lớp chạy thử nghiệm để chạy thử nghiệm tham số hóa:
Giải thích mã:
- Dòng mã 8: Khai báo phương thức chính của bài kiểm tra lớp sẽ chạy bài kiểm tra JUnit của chúng tôi.
- Dòng mã 9: Thực thi các trường hợp thử nghiệm bằng JunitCore.runclasses, nó sẽ lấy tên lớp thử nghiệm làm tham số (Trong ví dụ của chúng tôi, chúng tôi đang sử dụng Airthematic.class).
- Dòng mã 11: Xử lý kết quả bằng vòng lặp for và in ra kết quả không thành công.
- Dòng mã 13: In ra kết quả thành công.
Đầu ra:
Đây là kết quả hiển thị kiểm tra thành công mà không có dấu vết lỗi như được đưa ra bên dưới:
Xem kết quả trên bảng điều khiển, hiển thị phép cộng hai số: -
Tóm tắt :
Kiểm tra tham số hóa cho phép nhà phát triển thực hiện lặp đi lặp lại cùng một bài kiểm tra bằng cách sử dụng các giá trị khác nhau.
Các chú thích quan trọng sẽ được sử dụng trong quá trình tham số hóa
- @RunWith
- @Thông số