吸气剂和吸气剂 vs FRIEND_TEST
Getters and Setters vs FRIEND_TEST
我知道这不是很好的 class UT 设计但是...
万一有保护变量需要测试,直接用FRIEND_TEST到get/set测试这些变量会不会更好?或者我应该创建 getter 和 setter(为每个变量!)?
例如。
class Dog
{
public:
//some methods
protected:
int age;
std::string color;
std::string breed
}
声明一个 FRIEND_TEST 不需要太多开销,这与我为每个 == 6 个新方法创建 getter 和 setter 不同!但是更正确的解决方案是什么?
- FREIND_TEST 不是一个好的解决方案,因为您无法真正控制谁可以访问受保护的成员。
- 您可以将测试class定义为测试者class的内部class。仅在测试版本上启用此嵌套。
如果您只需要一个 class 能够访问您的受保护成员,请使用朋友 classes。这是C++中的绝对规则。
向您的 class 添加 getter 和 setter 只会增加开销,在最好的情况下,您的编译器会将其删除。
如果你想要更多关于朋友的信息 classes this link 将会很有用。
我知道这不是很好的 class UT 设计但是...
万一有保护变量需要测试,直接用FRIEND_TEST到get/set测试这些变量会不会更好?或者我应该创建 getter 和 setter(为每个变量!)?
例如。
class Dog
{
public:
//some methods
protected:
int age;
std::string color;
std::string breed
}
声明一个 FRIEND_TEST 不需要太多开销,这与我为每个 == 6 个新方法创建 getter 和 setter 不同!但是更正确的解决方案是什么?
- FREIND_TEST 不是一个好的解决方案,因为您无法真正控制谁可以访问受保护的成员。
- 您可以将测试class定义为测试者class的内部class。仅在测试版本上启用此嵌套。
如果您只需要一个 class 能够访问您的受保护成员,请使用朋友 classes。这是C++中的绝对规则。
向您的 class 添加 getter 和 setter 只会增加开销,在最好的情况下,您的编译器会将其删除。
如果你想要更多关于朋友的信息 classes this link 将会很有用。