基于参数值的C++伪/模拟返回值

C++ fake/mock return value based on the value of parameter

本文关键字:C++ 模拟 返回值 于参数 参数      更新时间:2023-10-16

使用Typemock Isolator++。伪方法的返回值是否可能基于参数的值?

例如:

WHEN_CALLED(student->GradeOfCourse("a")).ReturnVal(70);
WHEN_CALLED(student->GradeOfCourse("b")).ReturnVal(85);

如果参数是("a"),它将返回70。

如果参数是("b"),那么它将返回85。

免责声明我在Typemock 工作

使用DoMemberFunctionInsteadDoStaticOrGlobalInstead将您的调用重定向到另一个方法-在那里您可以根据参数的值返回一个不同的值。

添加此方法

int FakeGradeOfCourse(char * name)
{
   if (strcmp(name,"a")==0)
   {
      return 70;
   }
   return 85;
 }

在您的测试电话中:

WHEN_CALLED(student->GradeOfCourse(_)).
   DoStaticOrGlobalInstead(FakeGradeOfCourse, NULL);

你可以在我们的文档中找到一个例子。