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.
                
              
                                            
                                
            
 
            
                 20 trang
20 trang | 
Chia sẻ: hachi492 | Lượt xem: 644 | Lượt tải: 0 
              
            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:
 bai_tap_nhap_mon_cong_nghe_phan_mem_tuan_11_thuc_hanh_kiem_t.pdf bai_tap_nhap_mon_cong_nghe_phan_mem_tuan_11_thuc_hanh_kiem_t.pdf