gmock相关内容
我正在对派生类进行单元测试,希望EXPECT_CALL调用属于其基类的某个方法。 例如: class Base { public: void move(int x, int y); }; class Derived: public Base{ public: RESULT update(); private: int age; }; HRESULT Der
..
我有一个类,比如说ClassA,它既有一些公共函数也有一些私有函数。 公共函数轮流类私有函数。 现在我在这里的目的是通过公共函数测试私有函数。 对于公共函数,我尝试调用原始实现,而对于私有方法,我尝试创建一个Mock函数。 我的A班是这样的 class ClassA { public: string getName(string key) { int value
..
我有课 class CSumWnd : public CBaseWnd{私人的:布尔方法A()} 请你帮助如何模拟 MethodA() 而不使虚拟,我不明白 高性能依赖注入 的概念 p> 解决方案 这意味着你必须模板化你的生产代码.使用您的示例: CSumWind 类定义: class CSumWnd : public CBaseWnd{私人的:布尔方法A()}; 模拟CSumW
..
如果我在同一个 TEST_F 中的同一个模拟对象上两次调用 EXPECT_CALL ...会发生什么? 是否将期望附加到模拟对象上,还是第二次调用消除了第一次调用的影响? 我发现了之后子句似乎暗示允许多次调用同一个模拟+ EXPECT_CALL. 解决方案 是的,您可以在同一个模拟对象上多次调用 EXPECT_CALL.只要您确保在实际使用模拟方法之前调用了所有 EXPECT_
..
我是 gmock 的新手,所以我想知道如何存根在被测函数中调用的简单 C 函数以进行单元测试. 示例: int func(int a){布尔查找;//一些代码查找 = func_1();返回查找;} 我搜索了 gmock,据我所知 gmock 不提供存根简单 C 函数的功能,因此我想问一下 gmock 是否提供模拟或存根 func_1 的功能? 如果不是,我如何在不更改源代码的情况
..
我有一个使用类 Bar 的 Foo 类.Bar 只在 Foo 中使用,Foo 正在管理 Bar,因此我使用 unique_ptr(不是参考,因为我不需要 Foo 之外的 Bar): using namespace std;结构 IBar {虚拟 ~IBar() = 默认值;虚拟无效 DoSth() = 0;};结构栏:公共 IBar {void DoSth() override { cout
..
我认为这个问题可能违反了该网站的一些问答标准,因为我可能收到的答案可能被视为意见驱动.尽管如此,它在这里...... 假设我们正在处理一个 C++ 项目,使用 CMake 来驱动构建/测试/打包过程,并使用 GTest 和 GMock 进行测试.进一步假设我们项目的结构如下所示: cool_project||-- 来源||||-- module_foo||||||--(一堆源文件)||||
..
我以某种方式从 donsoft.io 的示例扩展了 gmock 测试用例,并按如下方式制作: coinflipper/├── 建设├── 工作区├── coinflipper.cc├── coinflipper.h├── rng.cc└── rng.h 好吧,我将 Rng 类作为 CoinFlipper 构造函数的参数,而是在 CoinFlipper::flipCoin() 方法. 我想
..
我将改用柯南,希望这将简化用户安装我的软件包的过程.没关系,直到我开始将gtest添加到我的程序包中. 在安装过程中,我收到消息 gtest/1.8.1@bincrafters/stable:已安装软件包conanfile.txt imports():复制了4个'.a'文件:libgmockd.a,libgtestd.a,libgmock_maind.a,libgtest_maind.a
..
我正在寻找一些 #define ,如果第一次测试失败,该代码可以停止测试用例的执行 TEST_F(TestInitializer,第一次测试){Initiator.call();EXPECT_CALL(mock_obj,onAction(false)).Times(AtLeast(0));//一些定义我想要:: testing :: stopIfFailed();}TEST_F(TestIni
..
我用一个模拟类创建了一个简单的C ++测试项目: #include#includeTestMock类{上市:MOCK_CONST_METHOD0(Method1,void());};TEST(测试,测试1){TestMock模拟}int main(int argc,char * argv []){:: testing :: Ini
..
我需要模拟以下功能: virtual void fun() noexcept = 0; 是否可以使用gmock? Gmock具有以下宏:#define GMOCK_METHOD0_(tn, constness, ct, Method, ...),但有一条注释:// INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!而且我不知道如
..
我已经使用Google模拟程序编写了一个演示模拟程序.问题是它失败了并且没有正确地模拟.我在这里不明白这个问题. 代码: test/mock_turtle_test.cc #include "mock_turtle.h" #include "../painter.h" #include using ::testing::_; using ::
..
我在my_inet.cpp文件中创建了一个外部套接字api的模拟. 该套接字api的GMock函数位于mock.h文件中. 我正在使用在server.cpp文件中创建的my_inet套接字API. 测试用gtest.cpp编写. 此处写入的死亡案例正在根据输出执行.输出表明该过程已终止.但是它也说socket()调用从未进行过,因此该案例显示为失败. 请说明原因是什么,解决方案是
..
是否可以通过GoogleTest for c ++测试函数调用而无需创建模拟对象,例如我们有以下生产代码: if (a) method(x); 我想测试在a为True和a为False的情况下是否会调用method.我想构建一个与Google Test的EXPECT_CALL完全相同的测试,但是EXPECT_CALL仅适用于模拟对象的方法.就我而言,我不想使用模拟(不需要创建任何对
..
我正在尝试为项目中的某些cpp文件编写单元测试用例. 这里的场景是: 我有一个cpp文件,其中仅定义了一个公共方法,而后者又调用了私有方法. 在这里,私有方法在公共方法中被称为回调方法.我如何在这里测试私有方法.我将对回调指针进行模拟,但不确定如何调用私有方法. 请给我一些建议,在这种情况下如何在不更改源代码的情况下调用私有方法. 这里是前人: buttonListe
..
我正在使用gmock模拟遗留代码中的依存关系.其中一个类具有带有11个参数的方法.当我尝试使用MOCK_METHOD11_WITH_CALLTYPE对其进行模拟时,我发现此宏不存在. gmock最多只能支持10个参数.您对此有何建议?我是否可以用虚拟人体来实现此方法?或复制&扩展宏?谢谢! PS,我现在不需要在测试中模拟此方法,但将来可能需要这样做. 最诚挚的问候, 解决方案
..
我是googlemock(和StackOverflow)的新手.在googlemock中使用MOCK_METHODn时遇到问题,我相信此功能已被广泛使用.这就是我所做的. 我有一个抽象类Foo,其中虚拟重载了operator[]: class Foo{ public: virtual ~Foo(){}; virtual int operator [] (int
..
我需要检测给定的函数是否已通过一组特定参数完全调用了ONCE. EXPECT_CALL(Mock_Obj, func("abc")).Times(1) 但是可以多次使用不同的参数调用该函数. 我该如何表达? 解决方案 在Google Mock中,以后的期望会覆盖以前的期望(EXPECT_CALL(Mock_Obj, func(_)).Times(AnyNumber());
..
class Foo { public: int x; int y; void move(void); }; class SuperFoo: public Foo { public: int age; void update(); }; SuperFoo::update(void) { move(); age++; } 我刚开始使用
..