独望枫

人在尘世间,有缘自相见,变化千千万,未开窍,已迷恋
posts - 45, comments - 0, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

类的public函数在面向对象编程中是最常见亦是最常规的函数,但是其单元测试的展开跟普通函数并无二致[这里指的是没有其他对象依赖的情况,有依赖的场景请参考本系列的有依赖对象的场景文章],下面来看看具体如何实施。

1.首先构建测试套件,定义一个继承自testing::Test的类

class modelTest : public testing::Test {

protected:

};

2.同样需要复写SetUp/TearDown两个函数

class modelTest : public testing::Test {

protected:

    void SetUp() override {

       

    }

    void TearDown() override {

       

    }

};

3.定义想要测试单元测试需要用到的数据,并在SetUp进行初始化,在TearDown中进行清理或析构。

class modelTest : public testing::Test {

protected:

    void SetUp() override {

        pm = new model;

    }

    void TearDown() override {

        if (pm) {

            delete pm;

            pm = NULL;

        }

    }

    model* pm;

};

4.通过TEST_F宏定义想要测试的类的public函数的测试用例

TEST_F(modelTest, IsPrimeNegative) {

    // This test belongs to the IsPrimeTest test case.

    EXPECT_FALSE(pm->IsPrime(-1));

    EXPECT_FALSE(pm->IsPrime(-2));

    EXPECT_FALSE(pm->IsPrime(INT_MIN));

}

// Tests some trivial cases.

TEST_F(modelTest, IsPrimeTrivial) {

    EXPECT_FALSE(pm->IsPrime(0));

    EXPECT_FALSE(pm->IsPrime(1));

    EXPECT_TRUE(pm->IsPrime(2));

    EXPECT_TRUE(pm->IsPrime(3));

}

// Tests positive input.

TEST_F(modelTest, IsPrimePositive) {

    EXPECT_FALSE(pm->IsPrime(4));

    EXPECT_TRUE(pm->IsPrime(5));

    EXPECT_FALSE(pm->IsPrime(6));

    EXPECT_TRUE(pm->IsPrime(23));

}

 

对应的demo源码,请点击PublicFuc.

 


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理