Google Test (gtest)
Google Test, còn được gọi là gtest hoặc googletest, là một khung kiểm tra C++ do Google phát triển. Nó cung cấp API thân thiện với người dùng để viết các trường hợp thử nghiệm và được thiết kế để sử dụng trong nhiều ứng dụng, từ thử nghiệm đơn vị đơn giản đến thử nghiệm cấp hệ thống phức tạp.
Bắt đầu với Google Test
Để sử dụng Google Test trong dự án của bạn, hãy làm theo các bước sau:
- Tải xuống mã nguồn từ kho GoogleTest GitHub.
- Xây dựng và cài đặt Google Test trên hệ thống của bạn. Có thể tìm thấy hướng dẫn cho các nền tảng khác nhau trong tệp README.
- Bao gồm các tiêu đề cần thiết và liên kết với thư viện Google Test trong dự án của bạn.
Viết bài kiểm tra với Google Test
Đây là một ví dụ về cách viết một bài kiểm tra đơn giản bằng Google Test:
-
Bao hàm các tiêu đề cần thiết
#include "gtest/gtest.h"
-
Viết các hàm bạn muốn kiểm tra
Giả sử chúng ta có một hàm đơn giản để kiểm tra:
int add(int a, int b) { return a + b; }
-
Viết các trường hợp thử nghiệm
Để tạo một trường hợp thử nghiệm, hãy sử dụng macro TEST(), macro này nhận hai đối số: tên bộ thử nghiệm và tên trường hợp thử nghiệm.
// Kiểm tra hàm 'add'. TEST(AdditionTest, PositiveNumbers) { EXPECT_EQ(3, add(1, 2)); EXPECT_EQ(5, add(2, 3)); } TEST(AdditionTest, NegativeNumbers) { EXPECT_EQ(-3, add(-1, -2)); EXPECT_EQ(-5, add(-2, -3)); }
-
Viết hàm main()
Để chạy thử nghiệm, hãy bao gồm hàm main() khởi tạo Google Test và chạy thử nghiệm.
int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
-
Biên dịch và chạy thử nghiệm
Biên dịch chương trình thử nghiệm của bạn với thư viện Google Test và chạy tệp thực thi thử nghiệm.
Nhiều tính năng hơn
Google Test cung cấp nhiều tính năng phạm vi mở rộng khiến việc kiểm tra trở nên dễ dàng hơn, chẳng hạn như:
- Thiết bị kiểm tra: Thiết bị kiểm tra cho phép bạn sử dụng lại cùng một bộ đối tượng cho nhiều lần kiểm tra. Bạn có thể xác định thiết bị kiểm tra bằng cách tạo một lớp kế thừa từ ::testing::Test và viết các phương thức thiết lập, phân tích.
- Assertion (Kiểm tra một biểu thức có true hay không): Google Test cung cấp nhiều macro assertion để giúp bạn xác minh hành vi của mã. Một số cái phổ biến bao gồm EXPECT_EQ, EXPECT_TRUE, EXPECT_FALSE, ASSERT_EQ, ASSERT_TRUE và ASSERT_FALSE.
- Thử nghiệm được tham số hóa: Google Test hỗ trợ các thử nghiệm được tham số hóa, cho phép bạn dễ dàng chạy cùng một thử nghiệm với các đầu vào khác nhau.
- Death Test: Google Test cho phép bạn viết các bài kiểm tra để xác minh xem mã code của bạn có kết thúc chính xác hay không với thông báo lỗi dự kiến.
Để biết thêm thông tin về Google Test và các tính năng của nó, hãy tham khảo tài liệu chính thức.