Bài tập Nhập môn công nghệ phần mềm - Tuần 11: Thực hành kiểm thử đơn vị với JUnit

Tạo mới class ParameterizedTest Trong class này chúng ta sẽ sử dụng annotation @RunWith của junit để chỉ cho Junit biết rằng test case này sẽ được chạy cùng với class nào. Cụ thể là @RunWith(value = Parameterized.class) của chính Junit. Chúng ta sẽ thêm cấu hình tham số thông qua phương thức khởi tạo của class ParameterizedTest. Tham số sẽ là 1 array gồm 3 phần tử, tương ứng với number 1 (a), number 2 (b) và tổng. ines từ 18-22: chúng ta có phương thức khởi tạo của class ParameterizedTest. Trong phương thức này chúng ta gán các giá trị tham số truyền vào (còn gọi là arguments) cho các thuộc tính của class ParameterizedTest (có 3 thuộc tính tương ứng với 2 số hạng và tổng của chúng). Line 24: chúng ta sử dụng annotations @Parameters để định dạng dữ liệu của tham số, thuộc tính name của annotation này là không bắt buộc, ở đây chúng ta để name là một chuỗi biểu diễn chuỗi sẽ được in ra console khi từng đối tượng dữ liệu (lưu trong collection) được test.

pdf20 trang | Chia sẻ: hachi492 | Ngày: 05/01/2022 | Lượt xem: 450 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài tập Nhập môn công nghệ phần mềm - Tuần 11: Thực hành kiểm thử đơn vị với JUnit, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
JUnit Test Trang 1 / 20 Bài tập tuần 11 Thực hành kiểm thử đơn vị với JUnit Mục tiêu - Cài đặt Eclipse có tích hợp sẵn JUnit - Thực hành với JUnit, tạo một test case đơn giản cho một đoạn chương trình Phần I Bài tập step by step Bài 1.1 Mục tiêu: Xác nhận lại việc cài đặt JUnit và Java đã thành công STEP1: Mở Eclipse, Tạo mới project tên TestJUnit ==> Finish JUnit Test Trang 2 / 20 JUnit Test Trang 3 / 20 STEP 2: Thêm thư viện Junit cho projec Chuột phải vào project TestJUnit ==> Build Path ==> Add Library JUnit Test Trang 4 / 20 Chọn Junit sau đó chọn Junit 4 rồi Finish JUnit Test Trang 5 / 20 JUnit Test Trang 6 / 20 STEP 3: Tạo mới class java tên TestJunit Chuột phải vào thư mục src của project TestJUnit ==> Chọn New ==> Chọn Class JUnit Test Trang 7 / 20 Đặt tên class là TestJunit ==> Finish Step 4: Trong class TestJunit.java, chúng ta sẽ setup một test case đơn giản JUnit Test Trang 8 / 20 Lưu ý việc thêm đủ các package của Junit và sử dụng annotation @Test của Junit trươc method testSetup() của chúng ta. Annotation này sẽ thông báo cho Junit biết đây là một unit test. Step 5: Tạo mới class TestRunner để chạy test case đã tạo ở Step 4 Chuột phải vào thư mục src ==> New Class ==> Đặt tên class mới là TestRunner Chọn public static void main (String[] args) để tự sinh sẵn hàm main() trong class này. JUnit Test Trang 9 / 20 Trong hàm main() của class này, chúng ta sẽ chạy test case có trong TestJunit.java JUnit Test Trang 10 / 20 Chúng ta sử dụng object Result để chứa tất cả các unit test có trong test case TestJunit. Những test bị fail sẽ được lấy về từ hàm getFailures của class Result. Step 6: Chạy chương trình review kết quả Chuột phải vào project TestJUnit ==> Run As ==> Junit Test JUnit Test Trang 11 / 20 JUnit Test Trang 12 / 20 Test case đã chạy thành công và không có failure. Note: Project này cho phép chúng ta bước đầu làm quen với môi trường Java và Junit tạo test unit để xác nhận việc cài đặt Java và Junit cũng như môi trường phát triển Eclipse đã hoàn tất. Bài 1.2 Mục tiêu: Thực hành viết nhiều hơn một test case cho class cần test Step 1: Tạo mới project tên Utils Step 2: Add Junit vào class path của project giống bài trước Step 3: Tạo mới class trong thư mục src, đặt tên là StringUtils JUnit Test Trang 13 / 20 Trong class StringUtils, chúng ta tạo ra 2 phương thức: reserveWords(String str) để đảo ngược word và countWords(String str) để đếm số từ trong chuỗi. Giả thiết rằng chuỗi nhập vào các từ cách nhau bằng 1 dấu cách. Step 4: Tạo test case cho class StringUtils Trong thư mục src tạo mới class tên StringUtilsTest, trong class này chúng ta sẽ tạo ra hai unit test tương ứng với hai hàm của class StringUtils. JUnit Test Trang 14 / 20 Step 5: Chạy test case Chuột phải vào class StringUtilsTest ==> Chọn Run As ==> Chọn Junit Test JUnit Test Trang 15 / 20 Bài 1.3 Mục tiêu: Tham số hoá các test case để test cho nhiều trường hợp của dữ liệu Trong JUnit, chúng ta có thể đưa tham số vào các unit test bằng 2 cách: 1. Thông qua phương thức khởi tạo (Constructor) 2. Sử dụng filed injection với annotation @Parameter Step 1: Tạo mới project tên Parameterizing Step 2: Add Junit vào class path của project Step 3: Tạo mới class tên MathUtils JUnit Test Trang 16 / 20 Trong class MathUtils, tạo một phương thức static đơn giản trả về tổng của hai số nguyên bất kì. Chúng ta sẽ sử dụng class này để tạo các test case với Junit. Step 4: Parameterized với Junit thông qua phương thức khởi tạo Constructor Tạo mới class ParameterizedTest Trong class này chúng ta sẽ sử dụng annotation @RunWith của junit để chỉ cho Junit biết rằng test case này sẽ được chạy cùng với class nào. Cụ thể là @RunWith(value = Parameterized.class) của chính Junit. Chúng ta sẽ thêm cấu hình tham số thông qua phương thức khởi tạo của class ParameterizedTest. Tham số sẽ là 1 array gồm 3 phần tử, tương ứng với number 1 (a), number 2 (b) và tổng. JUnit Test Trang 17 / 20 Lines từ 18-22: chúng ta có phương thức khởi tạo của class ParameterizedTest. Trong phương thức này chúng ta gán các giá trị tham số truyền vào (còn gọi là arguments) cho các thuộc tính của class ParameterizedTest (có 3 thuộc tính tương ứng với 2 số hạng và tổng của chúng). Line 24: chúng ta sử dụng annotations @Parameters để định dạng dữ liệu của tham số, thuộc tính name của annotation này là không bắt buộc, ở đây chúng ta để name là một JUnit Test Trang 18 / 20 chuỗi biểu diễn chuỗi sẽ được in ra console khi từng đối tượng dữ liệu (lưu trong collection) được test. Step 5: Chạy test case review kết quả. Chuột phải vào class ParameterizedTest ==> Chọn Run As ==> Chọn JUnit Test Chúng ta sẽ quan sát thấy 5 test case với các đầu vào dữ liệu khác nhau được thực hiện. Step 6: Sửa lại class ParameterizedTest để thực hiện tham số hoá test case theo cách thứ 2 (Field Injection) Chúng ta xoá đi phương thức khởi tạo của class này, thay vì thế sẽ sử dụng injection @Parameter của Junit cho từng thuộc tính của class. Chú ý rằng các thuộc tính này phải được chuyển từ private sang public. JUnit Test Trang 19 / 20 Chạy lại test case chúng ta thu được cùng kết quả như Step 5. JUnit Test Trang 20 / 20 Phần bài tập tự thực hành: Thay vì sử dụng traditional style như trên, các bạn hãy sử dụng modern style của junit (sử dụng assertThat và hàm is()). HẾT

Các file đính kèm theo tài liệu này:

  • pdfbai_tap_nhap_mon_cong_nghe_phan_mem_tuan_11_thuc_hanh_kiem_t.pdf