Giới thiệu về JUnit

Nhập môn Kiểm thử trong Java

Maria Milusheva

Senior Software Engineer

Thông tin nhanh

  • JUnit là thư viện kiểm thử Java phổ biến nhất
  • Được bảo trì tốt và cập nhật liên tục

Hình logo JUnit 5.

Nhập môn Kiểm thử trong Java

Viết kiểm thử JUnit

Hãy viết kiểm thử cho phương thức addTwoNumbers():

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Nhập môn Kiểm thử trong Java

Annotation @Test của JUnit

  • Cài JUnit bằng IDE hoặc công cụ build (ví dụ trong nguồn trích)

  • Mỗi kiểm thử phải có annotation @Test:

import org.junit.jupiter.api.Test;

@Test 
// Test method will be here

Annotation - siêu dữ liệu đặc biệt cho biết cách trình biên dịch và framework xử lý phương thức. Bắt đầu bằng @

1 https://www.jetbrains.com/help/idea/junit.html
Nhập môn Kiểm thử trong Java

Cấu trúc kiểm thử JUnit

import org.junit.jupiter.api.Test;

@Test 

void testAddTwoNumbers() {
// Arrange - Given int num1 = 2; int num2 = 2;
// Act - When int actual = addTwoNumbers(num1, num2);
// Assert - Then assertEquals(4, actual); }
Nhập môn Kiểm thử trong Java

Câu lệnh assert

  • Cách nhanh để so sánh kết quả thực tế với kỳ vọng
  • Nếu không khớp, kiểm thử thất bại
  • Giúp phát hiện lỗi nhanh

Đồ họa minh họa câu lệnh assert

Nhập môn Kiểm thử trong Java

Kết quả kiểm thử

Xem xét khẳng định sau:

assertEquals(4, actual); // Thành công nếu actual == 4

Nếu thành công, sẽ hiện thông báo Test passed

Nếu không bằng nhau, ví dụ actual = 5:

org.opentest4j.AssertionFailedError: expected: <4> but was: <5>

Lưu ý thứ tự đối số! Đối số đầu là giá trị kỳ vọng trong JUnit.

Nhập môn Kiểm thử trong Java

Kiểm thử bổ sung cho tràn số

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Nhập môn Kiểm thử trong Java

Ghi chú về JUnit và kiểm thử

  • Một kiểm thử có thể có nhiều assert
  • Tất cả assert phải thành công để kiểm thử vượt qua
  • Có thể import tất cả assert bằng:
import org.junit.jupiter.api.Assertions.*;
Nhập môn Kiểm thử trong Java

Ghi chú thêm

  • Sau đây là công cụ tùy chỉnh của Datacamp, không cần trong IDE:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method cho phép dùng method trực tiếp, không cần package.Class.method
import static java.lang.Math.max;

...

max(3,5); // Thay vì Math.max(3, 5)
Nhập môn Kiểm thử trong Java

Ayo berlatih!

Nhập môn Kiểm thử trong Java

Preparing Video For Download...