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

JUnit Test  
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  
Trang 1 / 20  
JUnit Test  
Trang 2 / 20  
JUnit Test  
STEP 2: Thêm thư viện Junit cho projec  
Chuột phải vào project TestJUnit ==> Build Path ==> Add Library  
Trang 3 / 20  
JUnit Test  
Chọn Junit sau đó chọn Junit 4 rồi Finish  
Trang 4 / 20  
JUnit Test  
Trang 5 / 20  
JUnit Test  
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  
Trang 6 / 20  
JUnit Test  
Đặ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  
Trang 7 / 20  
JUnit Test  
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.  
Trang 8 / 20  
JUnit Test  
Trong hàm main() của class này, chúng ta sẽ chạy test case có trong TestJunit.java  
Trang 9 / 20  
JUnit Test  
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  
Trang 10 / 20  
JUnit Test  
Trang 11 / 20  
JUnit Test  
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  
Trang 12 / 20  
JUnit Test  
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.  
Trang 13 / 20  
JUnit Test  
Step 5: Chạy test case  
Chuột phải vào class StringUtilsTest ==> Chọn Run As ==> Chọn Junit Test  
Trang 14 / 20  
JUnit Test  
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  
Trang 15 / 20  
JUnit Test  
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.  
Trang 16 / 20  
JUnit Test  
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  
Trang 17 / 20  
JUnit Test  
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.  
Trang 18 / 20  
JUnit Test  
Chạy lại test case chúng ta thu được cùng kết quả như Step 5.  
Trang 19 / 20  
JUnit Test  
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  
Trang 20 / 20  
pdf 20 trang Thùy Anh 24760 Free
Bạn đang xem 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 gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_tap_nhap_mon_cong_nghe_phan_mem_tuan_11_thuc_hanh_kiem_t.pdf