在Google测试固定装置中使用参考代替指针

Use reference instead of pointers in google test fixture?

本文关键字:参考 指针 测试 Google 装置      更新时间:2023-10-16

这是代码:

#include <gtest/gtest.h>
double sq(const double x) {
    return x*x;
}

class Sqtest : public ::testing::Test {
    protected:
        virtual void SetUp() {
            a = new int(1);
            b = new int(2);
            c = new int(3);
        }
        virtual void TearDown() {
            delete a;
            delete b;
            delete c;
        }
        int *a, *b, *c;
};
TEST_F (Sqtest, posnos) {
    EXPECT_EQ(1, sq(*a));
    EXPECT_EQ(4, sq(*b));
    EXPECT_EQ(9, sq(*c));
}

这一切都很好,但是如果在函数sq中我使用参考,即。

该怎么办
double sq(const double& x) {
    return x*x;
}

我应该如何相应地修改固定装置?

在此特定示例中确实不需要使用指针。令Sqtest成员为int类型,您完成了:

#include <gtest/gtest.h>
int sq(int x)
{
    return x * x;
}

class Sqtest : public ::testing::Test
{
protected:
    virtual void SetUp() override
    {
        a = 1;
        b = 2;
        c = 3;
    }
    int a, b, c;
};
TEST_F(Sqtest, posnos)
{
    EXPECT_EQ(1, sq(a));
    EXPECT_EQ(4, sq(b));
    EXPECT_EQ(9, sq(c));
}