欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[C++][第三方库][gtest]详解

最编程 2024-10-04 07:15:32
...
  • main.cc
    #include <iostream>
    #include <gtest/gtest.h>
    
    int Add(int x, int y)
    {
        return x + y;
    }
    
    TEST(Plus_Test, Equal)
    {
        ASSERT_EQ(Add(10, 10), 20);
    }
    
    TEST(ERROR_TEST, NE)
    {
        ASSERT_EQ(Add(10, 10), 30);
    }
    
    TEST(EXPECT_TEXT, EXPECT)
    {
        EXPECT_LT(Add(20, 20), 10);
      
        std::cout << "Output in EXPECT_TEST, but after EXPECT_LT" << std::endl;
    
        ASSERT_EQ(Add(10, 10), 30);
    
        std::cout << "Output in EXPECT_TEST" << std::endl;
    }
    
    int main(int argc, char* argv[])
    {
        // Init Test Module
        testing::InitGoogleTest(&argc, argv);
    
        // Invokle all tests
        return RUN_ALL_TESTS();
    }
    
  • makefile
    main:main.cc
    	g++ -o $@ $^ -std=c++17 -lgtest
    
    .PHONY:clean
    clean:
    	rm main
    
  • 运行示例
    $ ./main 
    [==========] Running 3 tests from 3 test suites.
    [----------] Global test environment set-up.
    [----------] 1 test from Plus_Test
    [ RUN      ] Plus_Test.Equal
    [       OK ] Plus_Test.Equal (0 ms)
    [----------] 1 test from Plus_Test (0 ms total)
    
    [----------] 1 test from ERROR_TEST
    [ RUN      ] ERROR_TEST.NE
    main.cc:16: Failure
    Expected equality of these values:
      Add(10, 10)
        Which is: 20
      30
    [  FAILED  ] ERROR_TEST.NE (0 ms)
    [----------] 1 test from ERROR_TEST (0 ms total)
    
    [----------] 1 test from EXPECT_TEXT
    [ RUN      ] EXPECT_TEXT.EXPECT
    main.cc:21: Failure
    Expected: (Add(20, 20)) < (10), actual: 40 vs 10
    Output in EXPECT_TEST, but after EXPECT_LT
    main.cc:25: Failure
    Expected equality of these values:
      Add(10, 10)
        Which is: 20
      30
    [  FAILED  ] EXPECT_TEXT.EXPECT (0 ms)
    [----------] 1 test from EXPECT_TEXT (0 ms total)
    
    [----------] Global test environment tear-down
    [==========] 3 tests from 3 test suites ran. (0 ms total)
    [  PASSED  ] 1 test.
    [  FAILED  ] 2 tests, listed below:
    [  FAILED  ] ERROR_TEST.NE
    [  FAILED  ] EXPECT_TEXT.EXPECT
    
     2 FAILED TESTS