gpt4 book ai didi

c++ - 如何使用私有(private)构造函数对类进行单元测试?

转载 作者:太空狗 更新时间:2023-10-29 21:11:03 26 4
gpt4 key购买 nike

我有一个 Foo 类。我只想允许 Bar 创建它,所以我将其构造函数设为私有(private)并将 Bar 设为友元。但是现在如何对 Foo 的公共(public)方法(例如 getValue)进行单元测试?我没有办法在单元测试文件中创建它的实例。

class Foo final
{
public:
int getValue();
private:
friend class Bar;
Foo(int value);
};

class Bar
{
protected:
Foo createFoo(int value);
};

最佳答案

你可以为单元测试添加一个额外的 friend 类

class Foo final
{
public:
int getValue();
private:
friend class Bar;
friend class UnitTests; // Here
Foo(int value);
};

class UnitTests {
public:
bool constructor_ok() { Foo test_instance(42); ... }
};

关于c++ - 如何使用私有(private)构造函数对类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51900590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com