Tự làm ơn và đi thẳng đến Google Test, làm cho CppUnit và boost::unit_test
trông thật kỳ quặc và lặp đi lặp lại.
Ví dụ, nói rằng bạn có một vật cố đơn giản:
class MyFixture : public ::testing::Test
{
protected:
int foo;
virtual void SetUp() { foo = 0; }
};
Để thêm một thử nghiệm để cố của bạn, hãy viết nó!
TEST_F(MyFixture, FooStartsAtZero) {
EXPECT_EQ(0, foo);
}
Đó là tất cả những gì bạn cần. Lưu ý việc thiếu các khai báo thử nghiệm rõ ràng hoặc một chương trình làm việc riêng biệt lặp lại tất cả tên của các bài kiểm tra của bạn.
Biên dịch nó như trong
$ g++ -o utest utest.cpp -lgtest -lgtest_main
và chạy thử nghiệm của bạn để có được
Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from MyFixture
[ RUN ] MyFixture.FooStartsAtZero
[ OK ] MyFixture.FooStartsAtZero (0 ms)
[----------] 1 test from MyFixture (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[ PASSED ] 1 test.
(Chạy nó cho mình để xem văn bản màu xanh lá cây đẹp cho vượt qua kiểm tra!)
này chỉ là sự bắt đầu. Hãy xem Google Test primer và advanced guide để xem những gì khác là có thể.
Nguồn
2010-06-27 00:01:53
Có thể bạn sẽ tìm thấy câu trả lời cho http://stackoverflow.com/questions/242926/comparison-of-c-unit-test-frameworks hữu ích. –
@ Alex: cảm ơn bài đăng của bạn, có một số liên kết thực sự hữu ích trong đó – chrmue
Liên kết tốt, AAlex, +1. @chrmue, để làm rõ - nên so sánh mà bạn đang tìm kiếm giả sử một người dùng Boost hay không? Bạn có hỏi "nếu tôi sử dụng Boost để phát triển, thì có lợi thế nào khi sử dụng văn bản Boost không?" hoặc bạn chỉ đang tìm kiếm một sự so sánh đơn giản? – Mawg