作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 googletest 测试返回 void 和 void* 的函数。我只是一个初学者,直到现在我才使用 EXPECT 来测试代码。
请让我知道如何为 void 和 void * 函数编写测试用例。
示例代码会很有帮助。 :)
谢谢
最佳答案
这是您的 Add
的示例功能,还有 throw 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();
}
关于function - 如何为返回 void 和 void * 的函数编写 googletest 测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20947324/
我是一名优秀的程序员,十分优秀!