当我们编写代码时,我们通常需要测试它是否按照预期工作。单元测试是一种测试方法,用于测试代码中的单个功能或模块。下面是一个简单的单元测试框架示例:
```c++
#include
#include
class Test {
public:
Test(const std::string& name) : name_(name), passed_(0), failed_(0) {}
void assert(bool condition, const std::string& message) {
if (condition) {
passed_++;
} else {
failed_++;
std::cout << "Test failed: " << name_ << " - " << message << std::endl;
}
}
void summary() {
std::cout << "Test summary: " << name_ << " - Passed: " << passed_ << ", Failed: " << failed_ << std::endl;
}
private:
std::string name_;
int passed_;
int failed_;
};
void test_addition(Test& test) {
int result = 2 + 2;
test.assert(result == 4, "Addition of 2 and 2 should equal 4");
}
void test_subtraction(Test& test) {
int result = 5 - 3;
test.assert(result == 2, "Subtraction of 5 and 3 should equal 2");
}
int main() {
Test test("Math tests");
test_addition(test);
test_subtraction(test);
test.summary();
return 0;
}
```
在这个框架中,我们定义了一个名为`Test`的类,它包含了测试的名称、通过和失败的计数器以及断言函数。断言函数接受一个条件和一条消息,如果条件为真,则测试通过,否则测试失败。
我们还定义了两个测试函数`test_addition`和`test_subtraction`,它们分别测试加法和减法的正确性。这些测试函数接受一个`Test`对象作为参数,并使用`assert`函数进行断言。
在`main`函数中,我们创建了一个名为`test`的`Test`对象,并运行了两个测试函数。