美文网首页C/C++
gtest测试C++的demo

gtest测试C++的demo

作者: 一木之夏 | 来源:发表于2017-09-25 11:57 被阅读26次

    1.gtest测试C++中的函数

    文件samp1.h

    //samp1.h

    #ifndef SAMP1_H

    #define SAMP1_H

    int add(int a, int b);

    int multi(int a, int b);

    int dev(int a, int b);

    int fac(int n);

    #endif

    文件samp1.cpp

    // samp1.cpp

    #include "samp1.h"

    int add(int a, int b)

    {

    return a + b;

    }

    int multi(int a, int b)

    {

    return a * b;

    }

    int dev(int a, int b)

    {

    if (b == 0)

    {

    return 0;

    }

    int result = a / b;

    return result;

    }

    // Returns n! (the factorial of n)

    int fac(int n)

    {

    int result = 1;

    for (int i=1; i<=n; i++)

    {

    result *= i;

    }

    return result;

    }

    单元测试用例:文件samp1_test.cpp

    //samp1_test.cpp#include#include "samp1.h"

    #include "gtest/gtest.h"

    namespace

    {

    TEST(add, Normal)

    {

    EXPECT_EQ(add(-1,5), 4);

    EXPECT_EQ(add(3,4), 7);

    EXPECT_EQ(add(0,233), 233);

    }

    TEST(multi, normal)

    {

    EXPECT_EQ(multi(5,2), 10);

    EXPECT_EQ(multi(66,2), 132);

    EXPECT_EQ(multi(1,-2), -2);

    }

    TEST(dev, normal)

    {

    EXPECT_EQ(dev(5,2), 2);

    EXPECT_EQ(dev(66,2), 33);

    EXPECT_EQ(dev(1,-2), 0);

    EXPECT_EQ(dev(0,12), 0);

    }

    TEST(dev, zero)

    {

    EXPECT_EQ(dev(20, 0), 0);

    }

    }

    # 执行命令:g++ samp1.cpp samp1_test.cpp gtest_main.a -lpthread -o test1生成可执行测试文件test1

    # 运行./test

    2.gtest测试C++中的类

    文件samp2.h

    //samp2.h

    #ifndef SAMP2_H

    #define SAMP2_H

    class Box

    {

    public:

    double length;

    double breadth;

    double height;

    public:

    double volumn(double len, double bre, double hei);

    };

    #endif

    文件samp2.cpp


    文件samp2_test.cpp

    编译并链接gtest_main.a并执行测试用例文件

    相关文章

      网友评论

        本文标题:gtest测试C++的demo

        本文链接:https://www.haomeiwen.com/subject/dcbfextx.html