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

时间:2015-03-25 09:26:09

标签: c++ unit-testing mocking tdd typemock

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

例如:

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

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

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

1 个答案:

答案 0 :(得分:2)

免责声明我在Typemock工作

使用DoMemberFunctionInsteadDoStaticOrGlobalInstead将您的调用重定向到其他方法 - 您可以根据参数值返回不同的值。

添加此方法

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

在测试电话中:

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

您可以在我们的docs中找到相关示例。