问题标签 [googlemock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 我尝试用 googlemock 模拟一个简单的 C++ 方法有什么问题?
根据Patterns for unit testing a C++ method that make a standard library call,我正在测试驱动网络抽象类的开发。为了对进行标准 C 库调用(我无法模拟)以处理 BSD 套接字的代码进行单元测试,我定义了一个接口ISocket
,我的实际实现CSocket
和模拟都从该接口MockSocket
继承。
现在我为这个类编写了我的第一个单元测试Network
,它使用 anISocket
来完成繁重的工作:
但我在编译时收到此错误:
这是我的界面和模拟的样子:
有什么想法我在这里做错了吗?
mocking - 调用模拟上的预期方法时调用方法
我有以下情况:
如果调用 doSomething,则将在 MockA 上调用 foo。如果将调用 foo,我如何触发方法 bla 的调用?是否有可能以某种方式产生如下期望:
?
我希望答案很清楚,例子也很清楚。
提前致谢。市场
c++ - 如何谷歌模拟从结构调用的方法
让我们举个例子:
在另一个文件中:
我需要 Google Mock Get 方法,但是,我还需要调用真正的方法。我尝试过使用#ifdef,它似乎有效。然后我决定在#ifdef 部分模拟它,但它什么也没做。
我究竟做错了什么?有没有更清洁的方法呢?请,任何帮助将不胜感激。
googletest - 方法和模拟具有相同的类
我有 2 种方法的课程
我想测试 Fun() 方法取决于 FunRet 返回的内容。所以我想模拟 FunRet。我宁愿不想让 FunRet 成为虚拟的。我怎么能这样做?
c++ - C++ Unit Testing: Stubs (not mocks)?
Just getting into Unit Testing with C++. It looks like I will need to write several stub classes as I go along. My understanding is there is a difference between Mocks and Stubs. Basically it seems Mocks are for when you are testing something happened on the object (e.g. verifying) while Stubs just facilitate your test. I guess for mocking, I can use googlemock but I don't see anything in it for creating Stubs (ala RhinoMocks' GenerateStub).
Is there a way to get automatically generated stubs? Does googlemock have any support for stubs? Or do I pretty much have to manually create stubs for testing?
c++ - 如何使用 operator[] 创建模拟类?
我正在上课operator[]
,像这样:
如何使用谷歌模拟框架为这个方法创建一个模拟类?
我试过这个:
但这会产生下一个错误:
c++ - Google Mock:不允许抽象类类型“xyz”的对象?
使用带有 GMock 的 Visual Studio 2010 C++。尝试为我的类使用的第三方类创建存根对象,但出现以下错误:
错误:不允许抽象类类型“ThirdPartyClassFake”的对象。
第三方类定义如下:
我创建了一个模拟:
现在在我的测试中,我正在尝试做:
错误出现在“ThirdPartyClassFake 存根;” 线。为什么会出现此错误,如何成功创建模拟/存根对象?
c++ - Google Mock:在程序退出时发现泄漏的模拟对象?
当我如下定义我的测试时,它可以工作。
ThirdPartyClassFake 是我创建的一个谷歌模拟类。
当我添加将指向我的存根的指针传递给包装类的代码时,我得到一个泄漏的内存错误:
错误是:
不确定它是否相关,但我应该添加ThirdPartyClassFake
来自 3rd 方抽象类(我无法控制)的子类,其中包含所有虚拟方法但没有虚拟析构函数。它还使用 Microsoft 特定的属性声明__declspec(novtable)
。
我认为问题可能在于缺少Google Mock FAQ中描述的虚拟析构函数。但是我相信如果这是第一个测试也应该失败的问题。
如何修复/解决此错误?
c++ - Google Mock:“没有合适的默认构造函数可用”?
将 Visual Studio 2010 C++ 与 googlemock 一起使用。我正在尝试使用我创建的模拟,但出现编译器错误:
错误是:
员工假:
员工:
我认为问题是基类没有默认构造函数,但我应该如何解决这个问题?我需要向我的基类添加默认构造函数吗?或者我需要在我的模拟类中添加一个构造函数吗?或者是其他东西?
c++ - 单元测试:接口编码?
目前我的项目由各种具体的类组成。现在,当我开始进行单元测试时,看起来我应该为每个类创建一个接口(实际上使我的项目中的类数量增加了一倍)?我碰巧使用 Google Mock 作为模拟框架。请参阅有关接口的 Google Mock CookBook。虽然之前我可能只有类Car
和Engine
,但现在我将拥有抽象类(也称为 C++ 接口)Car
,Engine
然后是实现类CarImplementation
和EngineImpl
或其他。这将允许我消除Car
对Engine
.
在研究这个问题时,我遇到了两种思路:
仅当您可能需要给定抽象的多个实现和/或在公共 API 中使用时才使用接口,否则不要创建不必要的接口。
单元测试存根/模拟通常是“其他实现”,因此,是的,您应该创建接口。
在进行单元测试时,我应该为项目中的每个类创建一个接口吗?(我倾向于创建易于测试的接口)