如何为返回 void 和 void * 的函数编写 googletest 测试用例?

use*_*287 5 function googletest void

我正在尝试使用 googletest 测试返回 void 和 void* 的函数。我只是一个初学者,到目前为止我刚刚使用 EXPECT 来测试代码。

请让我知道如何编写 void 和 void * 函数的测试用例。

示例代码会有很大帮助。:)

谢谢

Fra*_*ser 4

Add这是您的函数以及抛出函数的示例Divide

#include <stdexcept>
#include "gtest/gtest.h"

int global_sum(0), global_quotient(0);

void Add(int a, int b) {
  global_sum = a + b;
}

void Divide(int numerator, int divisor) {
  if (divisor == 0)
    throw std::logic_error("Can't divide by 0.");
  global_quotient = numerator / divisor;
}

TEST(Calculator, Add) {
  EXPECT_EQ(0, global_sum);

  Add(1, 2);
  EXPECT_EQ(3, global_sum);

  Add(-1, 1);
  EXPECT_EQ(0, global_sum);
}

TEST(Calculator, Divide) {
  EXPECT_EQ(0, global_quotient);

  EXPECT_NO_THROW(Divide(2, 1));
  EXPECT_EQ(2, global_quotient);

  EXPECT_THROW(Divide(1, 0), std::logic_error);
  EXPECT_EQ(2, global_quotient);

  EXPECT_NO_THROW(Divide(1, 2));
  EXPECT_EQ(0, global_quotient);
}

int main(int argc, char** argv) {
  testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)