【发布时间】:2019-10-15 19:15:48
【问题描述】:
假设我们有如下函数add():
void add(int a, int b) {
int sum=a+b;
cout<<sum;
sendSumToStorage(sum);
}
这个简单的函数添加到输入值,将总和打印到控制台,并将其发送到一些外部存储(例如,文件)。这就是我们在应用程序中理想的方式(意思是,我们不希望它返回任何东西)。
出于单元测试的目的,如果我们修改函数签名使其返回sum,它是否有效(从设计的角度来看)?然后我们可以进行如下测试:
bool checkAdd() {
int res=add(3, 4);
if(res==7) return true;
else return false;
}
更好的是,这是(返回一个值)我们可以对其进行单元测试的唯一方法吗?是否有一些有效的方法可以在不更改函数签名的情况下对add() 函数进行单元测试?
【问题讨论】:
-
使用模拟类以某种方式观察发送到存储的值会更正常
-
@AlanBirtles,你能详细说明一下吗?
-
如果你添加一个minimal reproducible example 那么我可以
标签: c++ unit-testing testing