比方说,我有这个类在C++:如何进行单元测试,如果一个私有变量已经改变
class ExampleClass{
private:
int example_var;
public:
void exampleMethod(){
example_var = other_value; // other value will be always different
}
}
我怎么能单元测试exampleMethod()
?我想这样做:
void testExampleMethod(){
ExampleClass obj;
int before_call_value = obj.example_var;
obj.exampleMethod();
int after_call_value = obj.example_var;
ASSERT_NOT_EQUALS(before_call_value, after_call_value);
}
但example_var
是私人的。
那么,做单元测试的正确方法是什么?我如何测试私人example_var
是否已更改?
你不能为'example_var'实现'get'函数吗? –
单元测试真的是主观吗?公共接口的行为?我不确定白盒测试是否值得这个努力。 – user0042
By测试可变行为,这种行为是通过改变这个变量产生的,与单元测试者交朋友,或者按照我的偏好添加一个getter。 – user4581301