Package quan trọng nhất trong JUnit là junit.framework. Một số lớp quan trọng như sau:
No. | Tên Lớp | Chức Năng |
---|---|---|
1 | Assert | Một tập các phương thức khẳng định (assert). |
2 | TestCase | Chạy nhiều test case một lúc. |
3 | TestResult | Một TestResult thu thập các kết quả thực hiện một test case. |
4 | TestSuite | TestSuite là một tổng hợp các phương thức test. |
Nội dung chính
Lớp Assert
Lớp Assert cung cấp một tập các phương thức xác nhận (assert). Chỉ các xác nhận không thành công mới được ghi lại. Một số phương pháp quan trọng của lớp Assert như sau:
Sr.No. | Methods & Description |
---|---|
1 | void assertEquals(boolean expected, boolean actual) Kiểm tra xem hai đối tượng nguyên thủy / đối tượng có bằng nhau hay không. |
2 | void assertFalse(boolean condition) Kiểm tra rằng một điều kiện là false. |
3 | void assertNotNull(Object object) Kiểm tra rằng một đối tượng không phải là null. |
4 | void assertNull(Object object) Kiểm tra rằng một đối tượng là null. |
5 | void assertTrue(boolean condition) Kiểm tra xem điều kiện có đúng không. |
6 | void fail() Không thực hiện kiểm tra mà không có thông báo. |
Ví dụ:
File: TestJunit1.java
import org.junit.Test; public class TestJunit1 { @Test public void testAdd() { // test data int num = 5; String str = "Junit Example 1"; // kiem tra gia tri bang nhau assertEquals("Junit Example 1", str); // kiem tra dieu kien false assertFalse(num > 6); // kiem tra gia tri khac null assertNotNull(str); } }
File: TestRunner1.java
package vn.viettuts.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner1 { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunit1.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
Lớp TestCase
Một số phương thức quan trọng của lớp TestCase như sau:
No. | Phương thức & Mô tả |
---|---|
1 | int countTestCases() Đếm số lượng các trường hợp thử nghiệm được thực hiện bằng cách chạy (kết quả TestResult). |
2 | TestResult createResult() Tạo một đối tượng TestResult mặc định. |
3 | String getName() Lấy tên của một TestCase. |
4 | TestResult run() Một phương pháp tiện lợi để thực thi test, thu thập các kết quả với một đối tượng TestResult mặc định. |
5 | void run(TestResult result) Thự thi test và thu thập kết quả trong TestResult. |
6 | void setName(String name) Đặt tên của một TestCase. |
7 | void setUp() Thiết lập các đối tượng cố định, ví dụ, mở một kết nối mạng. |
8 | void tearDown() Ví dụ, hãy đóng các đối tượng cố định, đóng một kết nối mạng. |
9 | String toString() Trả về một biểu diễn chuỗi của test case. |
Ví dụ:
File: TestRunner1.java
package vn.viettuts.junit; import org.junit.Before; import org.junit.Test; import junit.framework.TestCase; public class TestJUnit2 extends TestCase { protected double a; protected double b; @Before public void setUp() { a = 2.0; b = 3.0; } @Test public void testAdd() { // dem so test case System.out.println("So Test Case = " + this.countTestCases()); // test getName String name = this.getName(); System.out.println("Test Case Name = " + name); // test setName this.setName("testNewAdd"); String newName = this.getName(); System.out.println("Updated Test Case Name = " + newName); } // tearDown duoc su dung de dong ket noi hoac public void tearDown() { a = 0; b = 0; } }
File: TestRunner1.java
package vn.viettuts.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner2 { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJUnit2.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
Lớp TestResult
Một TestResult thu thập các kết quả thực thi một test case. Nó là một thể hiện của mẫu Collecting Parameter. Khung kiểm thử phân biệt giữa thất bại (failures) và lỗi(errors). Một failure được dự đoán và kiểm tra với phương thức assert. Error là các vấn đề xảy ra bất ngờ như một ArrayIndexOutOfBoundsException. Một số phương thức quan trọng của lớp TestResult như sau:
Sr.No. | Methods & Description |
---|---|
1 | void addError(Test test, Throwable t) Thêm một error vào danh sách các errors. |
2 | void addFailure(Test test, AssertionFailedError t) Thêm một failure vào danh sách các failures. |
3 | void endTest(Test test) Thông báo kết quả là một test đã được hoàn thành. |
4 | int errorCount() Nhận số error được phát hiện. |
5 | Enumeration<TestFailure> errors() Trả về một Enumeration cho các error. |
6 | int failureCount() Nhận số failure phát hiện được. |
7 | void run(TestCase test) Thực thi một TestCase. |
8 | int runCount() Lấy số lần chạy test. |
9 | void startTest(Test test) Thông báo kết quả là một test sẽ được bắt đầu. |
10 | void stop() Đánh dấu rằng nên dừng test lại. |
Lớp TestSuite
TestSuite là một tổng hợp các test case. Nó chạy một bộ sưu tập các test case. Một số phương thức quan trọng của lớp TestSuite như sau:
Sr.No. | Phương thức & Mô tả |
---|---|
1 | void addTest(Test test) Thêm một test tới suite. |
2 | void addTestSuite(Class<? extends TestCase> testClass) Thêm các tests từ lớp đã cho tới suite. |
3 | int countTestCases() Đếm số test cases sẽ được chạy. |
4 | String getName() Trả về tên của suite. |
5 | void run(TestResult result) Thực thi các tests và tập hợp kết quả trong một TestResult. |
6 | void setName(String name) Thiết lập tên của suite. |
7 | Test testAt(int index) Trả về test tại chỉ số index đã cho. |
8 | int testCount() Trả về só lượng tests trong suite. |
9 | static Test warning(String message) Trả về một test cái mà sẽ thất bại và log một thông điệp warning. |