0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng dẫn Kiểm Tra Biến Null Bằng Hamcrest Trong Unit Testing

Đăng vào 3 tuần trước

• 4 phút đọc

Hướng dẫn Kiểm Tra Biến Null Bằng Hamcrest Trong Unit Testing

Trong unit testing, việc xác minh biến có phải là null hay không là một nhiệm vụ rất phổ biến mà hầu hết lập trình viên đều gặp phải. Hamcrest, một framework phổ biến giúp viết các đối tượng matcher, cung cấp cách thức rõ ràng và dễ đọc nhất có thể để khẳng định các điều kiện trong các bài kiểm tra. Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra một biến có null hay không bằng cách sử dụng phương pháp assertThat() của Hamcrest, đồng thời so sánh với các khẳng định null và không null của JUnit.

Giới thiệu về Hamcrest

Hamcrest là một framework mạnh mẽ giúp viết các đối tượng matcher, giúp mã kiểm tra trở nên dễ đọc và trực quan hơn. Phương pháp chính của Hamcrest là assertThat(), một công cụ linh hoạt cho phép lập trình viên đưa ra các khẳng định trong kiểm thử. Phương pháp này nhận hai tham số: giá trị thực tế cần kiểm tra và một predicate matcher xác định điều kiện mong đợi.

Bằng cách sử dụng các hàm matcher khác nhau như is(), equalTo(), và nullValue(), lập trình viên có thể tạo ra những khẳng định mô tả và chính xác, từ đó cải thiện khả năng đọc và tính diễn đạt của các bài test.

So Sánh Hamcrest với JUnit

1. Giao Diện

  • Hamcrest cung cấp thư viện các đối tượng khớp lệnh giúp tạo ra các khẳng định kiểm tra linh hoạt và dễ đọc.
  • JUnit là một framework Java cung cấp nhiều khẳng định và chú thích để viết và chạy thử nghiệm.

2. Phương Pháp Khẳng Định

  • Hamcrest sử dụng phương pháp assertThat().
  • JUnit sử dụng nhiều hàm như assertEquals(), assertTrue(), assertFalse(), assertNull(), và assertNotNull().

3. Tính Linh Hoạt

  • Hamcrest rất linh hoạt với nhiều bộ so sánh, cho phép đưa ra khẳng định phức tạp.
  • JUnit cung cấp các khẳng định cơ bản, trực tiếp hơn.

4. Khả Năng Đọc

  • Hamcrest chú trọng vào khả năng đọc và tính trôi chảy của các khẳng định, giúp mã kiểm tra dễ hiểu.
  • JUnit có thể khiến các khẳng định dài dòng hơn nhưng lại chính xác và đúng trọng tâm.

5. Tính Tích Hợp

  • Hamcrest có thể dễ dàng tích hợp với JUnit và các framework khác để tăng cường khả năng khẳng định.
  • JUnit hoạt động như một framework độc lập nhưng cũng có thể tích hợp với các thư viện khác.

6. Mức Độ Sử Dụng Phổ Biến

  • Hamcrest thường được sử dụng để tạo khẳng định tùy chỉnh trong unit testing.
  • JUnit được sử dụng rộng rãi để viết và chạy thử nghiệm với các khẳng định cơ bản.

Cách Sử Dụng Hamcrest Để Kiểm Tra Biến Null

Để kiểm tra xem một biến có phải là null hay không, bạn có thể sử dụng hàm is kết hợp với nullValue().

Ví Dụ Minh Họa

java Copy
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.nullValue;

public class HamcrestNullTest {
  public static void main(String[] args) {
    String variable = null;
    assertThat(variable, nullValue());
  }
}

Trong ví dụ trên:

  • assertThat(variable, nullValue()) dùng để kiểm tra xem biến có null hay không.
  • nullValue() là thư viện matcher để xác minh giá trị là null.

Nếu biến là null, kiểm tra sẽ thành công. Ngược lại, nếu biến không phải là null, bạn sẽ nhận được lỗi AssertionError.

Sử Dụng Các Khẳng Định Null và Không Null của JUnit

JUnit cũng cung cấp các khẳng định tích hợp đơn giản giúp kiểm tra các giá trị null và không null.

Ví Dụ Minh Họa

java Copy
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertNotNull;

public class JUnitNullTest {
  @Test
  public void testVariableIsNull() {
    String variable = null;
    assertNull(variable);
  }

  @Test
  public void testVariableIsNotNull() {
    String variable = "Not Null";
    assertNotNull(variable);
  }
}

Trong đoạn mã này:

  • assertNull(variable) kiểm tra xem biến có null hay không và trả về kết quả nếu đúng.
  • assertNotNull(variable) kiểm tra xem biến có phải là null không và đưa ra kết quả nếu sai.

Nếu các điều kiện không được đáp ứng, hệ thống sẽ đưa ra lỗi AssertionError.

Kết Luận

Việc kiểm tra giá trị null là một yêu cầu cơ bản trong unit testing. Hamcrest cung cấp cách thức dễ đọc và hữu ích để khẳng định các giá trị null thông qua phương pháp assertThat() với nullValue(). Ngoài ra, JUnit cũng hỗ trợ các khẳng định đơn giản với assertNull()assertNotNull(). Việc sử dụng hiệu quả các công cụ này sẽ giúp mã kiểm tra trở nên dễ đọc và dễ bảo trì hơn. Cảm ơn các bạn đã theo dõi bài viết này!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào