Java: API

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Gói quan trọng nhất trong JUnit là junit.framework, chứa tất cả các lớp lõi. Một số lớp quan trọng như sau:

Sr.No. Tên lớp Chức năng
1 Assert Một tập hợp các phương thức assert.
2 TestCase Một test case sẽ xác định fixture để chạy nhiều thử nghiệm.
3 TestResult TestResult thu thập kết quả của việc thực thi một test case.
4 TestSuite TestSuite là một tổ hợp các test.

Lớp Assert

Sau đây là phần khai báo cho lớp org.junit.Assert:

public class Assert extends java.lang.Object

Lớp này cung cấp một tập hợp các phương thức assert hữu ích cho việc viết các bài kiểm tra. Chỉ những xác nhận không thành công mới được ghi lại. Một số phương thức quan trọng của lớp Assert như sau:

Sr.No. Phương thức & Mô tả
1

void assertEquals(boolean expected, boolean actual)

Kiểm tra xem hai object hoặc hai giá trị nguyên thủy (primitive) có bằng nhau không.

2

void assertFalse(boolean condition)

Kiểm tra xem condition có false không.

3

void assertNotNull(Object object)

Kiểm tra xem object có không null không.

4

void assertNull(Object object)

Kiểm tra xem object có null không.

5

void assertTrue(boolean condition)

Kiểm tra xem condition có true không.

6

void fail()

Không kiểm tra được và không có thông báo.

Bây giờ ta sẽ có một ví dụ ap dụng. Trước tiên ta tạo file java có tên TestJunit1.java trong C:\>JUNIT_WORKSPACE .

import org.junit.Test;
import static org.junit.Assert.*;

public class TestJunit1 {
   @Test
   public void testAdd() {
      //test data
      int num = 5;
      String temp = null;
      String str = "Junit is working fine";

      //check for equality
      assertEquals("Junit is working fine", str);
      
      //check for false condition
      assertFalse(num > 6);

      //check for not null value
      assertNotNull(temp);
   }
}

Tiếp theo, tạo file java có tên TestRunner1.java trong C:\>JUNIT_WORKSPACE để thực thi (các) test case.

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());
   }
}  	

Biên dịch các lớp test case và Test Runner bằng javac.

C:\JUNIT_WORKSPACE>javac TestJunit1.java TestRunner1.java

Bây giờ hãy chạy Test Runner, sẽ chạy trường hợp thử nghiệm được xác định trong lớp Test Case đã cung cấp.

C:\JUNIT_WORKSPACE>java TestRunner1

Xác minh kết quả đầu ra.

true

Lớp TestCase

Sau đây là phần khai báo cho lớp org.junit.TestCase:

public abstract class TestCase extends Assert implements Test

Mỗi test case sẽ xác định fixture để chạy nhiều thử nghiệm. Một số phương thức quan trọng của lớp TestCase như sau:

Sr.No. Phương thức & Mô tả
1

int countTestCases()

Đếm số lượng các test case được thực hiện khi thực thi phương thức run(TestResult result).

2

TestResult createResult()

Tạo một đối tượng TestResult mặc định.

3

String getName()

Lấy tên của TestCase.

4

TestResult run()

Đây là phương thức thuận tiện để chạy thử nghiệm này, thu thập kết quả với một đối tượng TestResult mặc định.

5

void run(TestResult result)

Chạy test case và thu thập kết quả trong TestResult.

6

void setName(String name)

Đặt tên cho TestCase.

7

void setUp()

Thiết lập fixture, chẳng hạn như mở kết nối mạng.

8

void tearDown()

Tách fixture, chẳng hạn như đóng kết nối mạng.

9

String toString()

Trả về chuỗi thông tin của test case.

Dưới đây là ví dụ minh họa. Tạo file java có tên TestJunit2.java trong C:\>JUNIT_WORKSPACE.

import junit.framework.TestCase;
import org.junit.Before;
import org.junit.Test;

public class TestJunit2 extends TestCase  {
   protected double fValue1;
   protected double fValue2;
   
   @Before 
   public void setUp() {
      fValue1 = 2.0;
      fValue2 = 3.0;
   }
	
   @Test
   public void testAdd() {
      //đếm số lượng test case
      System.out.println("No of 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 được dùng để đóng kết nối hoặc xóa các activity
   public void tearDown() {
   }
}

Tiếp theo, tạo file java có tên TestRunner2.java trong C:\>JUNIT_WORKSPACE để thực thi (các) test case.

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());
   }
} 

Biên dịch các lớp test case và Test Runner bằng javac.

C:\JUNIT_WORKSPACE>javac TestJunit2.java TestRunner2.java

Bây giờ hãy chạy Test Runner, nó sẽ chạy test case được xác định trong lớp Test Case đã cung cấp.

C:\JUNIT_WORKSPACE>java TestRunner2

Xác minh kết quả đầu ra.

No of Test Case = 1
Test Case Name = testAdd
Updated Test Case Name = testNewAdd
true

Lớp TestResult

Sau đây là phần khai báo cho lớp org.junit.TestResult:

public class TestResult extends Object

TestResult thu thập kết quả của việc thực thi một test case. Nó là một ví dụ của mẫu Collecting Parameter. Framework Test sẽ phân biệt giữa thất bại và lỗi. Thất bại được dự đoán trước và được kiểm tra bằng các xác nhận. Lỗi là những vấn đề không lường trước được như ArrayIndexOutOfBoundsException. Một số phương thức quan trọng của lớp TestResult như sau:

Sr.No. Phương thức & Mô tả
1

void addError(Test test, Throwable t)

Thêm một lỗi vào danh sách các lỗi.

2

void addFailure (Test test, AssertionFailedError t)

Thêm thất bại vào danh sách thất bại.

3

void endTest(Test test)

Thông báo kết quả rằng một test đã được hoàn thành.

4

int errorCount()

Nhận số lỗi được phát hiện.

5

Enumeration<TestFailure> errors()

Trả về một Enumeration cho các lỗi.

6

int failCount()

Nhận số lỗi được phát hiện.

7

void run(TestCase test)

Chạy TestCase.

8

int runCount()

Nhận số lần chạy thử nghiệm.

9

void startTest(Test test)

Thông báo kết quả rằng một test sẽ được bắt đầu.

10

void stop()

Đánh dấu rằng quá trình test sẽ dừng lại.

Tạo file java có tên TestJunit3.java trong C:\>JUNIT_WORKSPACE.

import org.junit.Test;
import junit.framework.AssertionFailedError;
import junit.framework.TestResult;

public class TestJunit3 extends TestResult {
   // add the error
   public synchronized void addError(Test test, Throwable t) {
      super.addError((junit.framework.Test) test, t);
   }

   // add the failure
   public synchronized void addFailure(Test test, AssertionFailedError t) {
      super.addFailure((junit.framework.Test) test, t);
   }
	
   @Test
   public void testAdd() {
      // add any test
   }
   
   // Đánh dấu rằng nên dừng test run.
   public synchronized void stop() {
      //stop the test here
   }
}

Tiếp theo, tạo file java có tên TestRunner3.java trong C:\>JUNIT_WORKSPACE để thực thi (các) test case.

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner3 {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestJunit3.class);

      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}  	

Biên dịch các lớp test case và Test Runner bằng javac.

C:\JUNIT_WORKSPACE>javac TestJunit3.java TestRunner3.java

Bây giờ hãy chạy Test Runner, nó sẽ chạy test case được xác định trong lớp Test Case đã cung cấp.

C:\JUNIT_WORKSPACE>java TestRunner3

Xác minh kết quả đầu ra.

true

Lớp TestSuite

Sau đây là khai báo cho lớp org.junit.TestSuite:

public class TestSuite extends Object implements Test

TestSuite là Tổng hợp (Composite) các test. Nó chạy một tập hợp (collection) 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 vào bộ.

2

void addTestSuite(Class<? expand TestCase> testClass)

Thêm các test từ lớp đã cho vào bộ.

3

int countTestCases()

Đếm số lượng test case sẽ được chạy bởi test này.

4

String getName()

Trả về tên của bộ.

5

void run(TestResult result)

Chạy các test và thu thập kết quả của chúng trong một TestResult.

6

void setName(String name)

Đặt tên cho bộ.

7

Test testAt(int index)

Trả về test ở chỉ số đã cho.

8

int testCount()

Trả về số lượng test trong bộ này.

9

static Test warning(String message)

Trả về một test mà sẽ fail và ghi lại một thông báo cảnh báo.

Tạo file java có tên JunitTestSuite.java trong C:\>JUNIT_WORKSPACE để tạo TestSuite.

import junit.framework.*;

public class JunitTestSuite {
   public static void main(String[] a) {
      // add the test's in the suite
      TestSuite suite = new TestSuite(TestJunit1.class, TestJunit2.class, TestJunit3.class );
      TestResult result = new TestResult();
      suite.run(result);
      System.out.println("Number of test cases = " + result.runCount());
   }
}

Biên dịch các lớp TestSuite bằng javac.

C:\JUNIT_WORKSPACE>javac JunitTestSuite.java 

Bây giờ hãy chạy TestSuite.

C:\JUNIT_WORKSPACE>java JunitTestSuite

Xác minh kết quả đầu ra.

No of Test Case = 1
Test Case Name = testAdd
Updated Test Case Name = testNewAdd
Number of test cases = 3
» Tiếp: Viết chương trình kiểm thử
« Trước: Cách sử dụng cơ bản
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!