Kiểm thử đơn vị là một khái niệm phổ biến đối với lập trình viên, đặc biệt là những người lập trình theo TDD, bạn có thể tham khảo thêm về TDD trong các bài viết liên quan trên Tạp chí Lập trình. Đối với nền tảng Android, các bạn đã biết rằng các ứng dụng được phát triển trên ngôn ngữ Java, điều đó cũng có nghĩa là Framework JUnit trên Java cũng được tích hợp trong việc phát triển ứng dụng. Bài viết dưới đây sẽ hướng dẫn sử dụng JUnit test cho kiểm thử đơn vị trên Android một cách cơ bản nhất.
Trước tiên, chúng ta cần phải tạo ra thứ gì đó để có thể kiểm thử được. Các bạn hãy khởi tạo một Android project với một cái tên gì tùy bạn. Vì đang viết bài cho Tạp Chí Lập Trình nên ở đây tôi sử dụng cái tên TapChiLapTrinh để tránh nhầm lẫn với hàng dài những project linh tinh khác đã viết trước đó. Trong project này, tôi sử dụng một lớp Calculator với phương thức add() để thực hiện tính tổng hai số nguyên cho trước.
Tại trình đơn, chọn File > New > Other… Tại thư mục Android chọn Android Test Project và bấm Next sau đó điền tên project (ở đây tôi dùng cái tên là TestTapChiLapTrinh).
Như vậy chúng ta đã có một project cho việc kiểm thử. Sẽ là khá mới lạ với các bạn đã quen sử dụng Junit trên Netbeans cho Java vì Unit Test được tích hợp ngay trong project đó.
Tại package mặc định của project TestTapChiLapTrinh, tôi sẽ tạo mới một lớp để viết các trường hợp kiểm thử và chạy kiểm thử (có một điểm thú vị mà tôi nhận ra đó là tên package sẽ giống với tên project cần kiểm thử có thêm đuôi “.test“)
Các bạn bấm chuột phải tại package, chọn New > JUnit Test Case
Chú ý: Tại SuperClass, các bạn bấm Browse và tìm chọn AndroidTestCase (có thể gõ vào đó một vài từ, Eclipse sẽ gợi ý ra cho bạn). Mặc định khi khởi tạo sẽ là junit.framework.TestCase. Hoặc có thể thay đổi bằng cách kế thừa AndroidTestCase ngay trong lớp vừa mới tạo.
Ở đây tôi có chọn thêm hai lựa chọn nữa là các phương thức setup() và teardown(), sau đó nhấn Finish.
- setup(): nói một cách dễ hiểu, nó là phương thức được gọi đầu tiên trước khi tiến hành chạy các testcase. Đó là nơi bạn có thể cấu hình môi trường cho việc chạy test.
- tearDown(): là phương thức được gọi cuối cùng, sau khi các test case được chạy. Nó có nhiệm vụ “thu dọn chiến trường” để giải phóng bộ nhớ và thiết lập lại công cụ đo của JUnit .
Giờ chúng ta cần chạy test để kiểm tra xem có đúng 3 + 6 = 9 hay không? Biết đâu được lại ra kết quả khác thì sao? Các bạn bấm chuột phải trong class, trỏ đến Run As > Android Unit Test.
Mách nhỏ: Tốt hơn hết là các bạn nên chạy máy giả lập (Emulator) trước khi chạy test, Eclipse sẽ tự khởi động máy giả lập nếu chưa có máy nào được chạy sẵn. Sẽ đỡ tốn thời gian chờ đợi vì máy giả lập khởi động khá lâu.
Sau khi chạy testcase, bên cạnh thẻ Package Explorer sẽ xuất hiện thêm thẻ JUnit, nhấn chuột vào đó, và đây là kết quả
Trên đây là một ví dụ nho nhỏ về kiểm thử đơn vị trên Android. Sẽ không có gì mới lạ với những ai đã quen sử dụng Junit trên Netbeans với Java.
Hi vọng sau bài viết này, các bạn mới bắt đầu và có thể chưa biết sử dụng Junit có thể bắt đầu viết kiểm thử cho chính mã nguồn của mình
Chúc các bạn thành công
Các bạn có thể tham khảo tại: http://developer.android.com/tools/testing/testing_eclipse.html
Trong bài viết trên bạn hãy thử tìm thêm các trường hợp kiểm thử để chứng tỏ rằng phương thức Add như trong ví dụ là không hoạt động. Vậy phương thức Add thật sự sẽ phải viết như thế nào? Mời các bạn comment dưới bài viết này![]()