Предположим, у нас есть функция 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()
без изменения сигнатуры функции?