gpt4 book ai didi

c++ - gmock 忽略 "interesting"函数调用

转载 作者:太空狗 更新时间:2023-10-29 21:19:36 26 4
gpt4 key购买 nike

我想在我的单元测试中使用 gmock。我写了一个非常简单的例子,但它失败了。 ISymbolTable 是我要模拟的接口(interface)。 MockSymbolTable 是模拟对象。在测试中,我调用插入并检查是否调用了任何插入。

GMOCK 警告:

Uninteresting mock function call - returning directly. Function call: insert(8-byte object <24-7C 4C-04 03-00 00-00>) Stack trace: LexerTests.cpp:25: Failure Actual function call count doesn't match EXPECT_CALL(symbolTable, insert(::testing::_))...

class ISymbolTable {
public:
ISymbolTable() {}
virtual ~ISymbolTable() {};
virtual void insert(const Entry entry) = 0;
virtual int lookUp(const std::string text) = 0;
};

class MockSymbolTable : public ISymbolTable {
public:
MOCK_METHOD1(insert, void(const Entry entry));
MOCK_METHOD1(lookUp, int(const std::string text));
};

TEST(Lexer, N) {
MockSymbolTable symbolTable;
symbolTable.insert(Entry("dsgft", 3));
EXPECT_CALL(symbolTable, insert(::testing::_)).Times(1);
}

最佳答案

你必须按如下方式重写测试用例

TEST(Lexer, N) {
MockSymbolTable symbolTable;
EXPECT_CALL(symbolTable, insert(::testing::_)).Times(1);

symbolTable.insert(Entry("dsgft", 3));
}

所有调用期望都必须在首先接触模拟对象之前设置。

关于c++ - gmock 忽略 "interesting"函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26766649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com