Gerkin语言C++使用cpp-stub桩函数返回值为void,使用stub.set,如何写,写个案例
时间: 2024-10-13 21:15:32 浏览: 30
Gerkin语言(通常用于编写测试规格说明文档,如BDD(行为驱动开发)框架)本身并不直接涉及编程细节,尤其是像C++和cpp-stub这样的工具。然而,如果你是在使用C++和某个测试框架(比如Google Test或Mockito),想要模拟(stub)`void`类型的函数,你可以这样做:
首先,假设我们有一个`SomeClass`,它有一个返回`void`的方法`doSomething()`,你可以在测试中创建一个`SomeClass`的mock(stub)对象,并使用mock库提供的set方法设置对`doSomething()`的期望行为。
```cpp
#include <gmock/gmock.h>
#include "SomeClass.h" // 假设这是包含SomeClass的头文件
class MockSomeClass : public SomeClass {
public:
MOCK_METHOD(void, doSomething, (), (override)); // 定义mock方法
};
// 测试代码示例
TEST(SomeTest, DoSomethingStubbing) {
// 创建并初始化mock对象
auto mockObj = std::make_shared<MockSomeClass>();
// 使用stub.set设置预期行为,这里设置为什么都不做(因为void没有实际结果)
EXPECT_CALL(*mockObj, doSomething()).Times(1); // 预期该方法会被调用一次
// 现在可以安全地在测试中调用mock的方法,实际上不会有任何影响
mockObj->doSomething();
}
```
在这个例子中,`EXPECT_CALL`设置了当`doSomething`被调用时的行为。由于`doSomething`返回`void`,所以不需要指定具体的返回值。
阅读全文