我的意图是测试一个函数,该函数根据布尔值调用两个不同的函数。定义的原始类将布尔值声明为private。函数的形式是:
funcA()
{
if(B) funcB;
else funcC;
}
这里B是私有成员布尔变量,其值在其他函数中发生了更改,默认情况下定义为false。我想为这个类写一个谷歌测试用例,如果B为true,我想使用EXPECT_CALL(*classInstance, funcB).Times(1)
,否则使用EXPECT_CALL(*classInstance, funcC).Times(1)
。有人能告诉我如何在测试用例中更改布尔值B的值吗?
有人能告诉我如何在测试用例中更改布尔值B的值吗?
你不能*,这就是private
成员的全部意义。好消息是,你不应该
测试类的可观察行为,而不是它的详细信息(如私有布尔变量(。
我在这里看到两个测试用例:
funcC
在创建待测单元后调用funcA
时调用,并且- 如果在
funcA
之前调用someOtherFuncThatChangesB
,则调用funcB
*有访问私人成员的方法,但通常不推荐使用。private
部件应该可以自由更改,而无需更改测试(只要逻辑保持不变(。