Как подменить функцию в google test

  • У меня есть функция testable, которую я тестирую.
  • Внутри используется функция foo, которую мне нужно как-то подменить.

--

int foo(int a){
  if (a > 0)
    return 42;
  else
    return 13;
}

int testable(int a){
  return foo(a) * 2;
}

В тесте мне нужно протестировать функцию testable, но мне нужно, чтобы внутри использовалась другая функция вместо foo.

TEST(Test, Test1){
  // Тут я хочу, чтобы функция 'testable' использовала 
  // не настоящую 'foo', а некую подмену.

  // foo(1)  -> 10;
  // foo(12) -> 120;
  // foo(-3) -> -30;
  // иначе   -> 0;

  EXPECT_EQ(testable(1), 20);
  EXPECT_EQ(testable(12), 240);
  EXPECT_EQ(testable(-3), -60);
  EXPECT_EQ(testable(666), 0);
}

Можно это как-то организовать?


Ответы (0 шт):