问题标签 [gmock]

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.

0 投票
3 回答
1381 浏览

java - gmock 可以模拟 Java 类的静态方法吗?选择?

我无法让它工作。就像方法没有被嘲笑一样。

是否有替代的 groovy 测试框架可以更好地模拟静态 Java 方法?

2011 年 3 月 2 日更新:添加代码:

我实际上是在尝试模拟 Scala XML.loadXml(我正在尝试使用 Groovy 进行单元测试)类:

这是我的测试用例:

我尝试使用 gmock 和 metaClass 进行测试:

0 投票
1 回答
3115 浏览

c++ - gmock :进行可能失败的自定义检查

我在我的单元测试中使用谷歌模拟库,并且我正在尝试进行可能失败的自定义检查。

下一个示例演示了我正在尝试做的事情:

现在我想检查假对象是否在 Send 方法中传递了 Derived 类型的对象,以及值 a。那么,该怎么做呢?

我的想法是使用 Invoke 并将调用转发到某个函数,该函数会将 dynamic_cast 从 Base 转换为 Derived,并检查值。如果类型不是预期的,则抛出异常。像这样 :

然后像这样测试:

这行得通吗?或者,还有更好的方法?

0 投票
1 回答
593 浏览

c++ - TestPlugInRunnerd.exe + gmock

我们将 cppunit 单元测试构建为 dll 并将其加载到 TestPlugInRunnerd.exe 以显示我们的结果。我们编写自己的模拟,但我想开始使用模拟框架,例如 gmock。

我下载了 gmock 并链接到它,没有太多问题。我已经使用 gmock 编写了一个模拟,它编译得很好。但后来我在 gmock 常见问题解答中阅读了以下内容:

我显然没有主线。我需要做什么才能让 gmock 使用我的 dll?我应该考虑 gmock 的替代品吗?

谢谢,

巴里

0 投票
3 回答
3951 浏览

c++ - 使用 googlemock 时,我可以不模拟 C++ 接口中的所有方法吗?

我正在使用 Google Mock 1.6 RC 并试图模拟COM Interface. COM 接口中有近 50 种方法,其中一些是从基本接口继承而来的。当我创建一个struct从该接口继承的模拟并仅模拟我正在使用的方法时,我得到了cannot instantiate abstract class错误。

我想知道是否可以在 googlemock 中执行此操作。

0 投票
2 回答
3218 浏览

c++ - 模拟类可以从googlemock中的另一个模拟类继承吗?

模拟类可以从googlemock中的另一个模拟类继承吗?如果是,那么请帮助我理解为什么这不起作用。

我得到一个cannot instantiate abstract class编译器错误,MockB但不是MockA

0 投票
2 回答
4447 浏览

c++ - 使用带有 boost::bind 的 Google Mock

我有一个类,其构造函数采用 Boost 函数,我想用 Google Mock 对其进行测试。以下代码显示了一个示例类以及我对其进行测试的尝试:

MyClass.h:

MyClassTest.cpp:

尝试在 Visual Studio 2008 中编译 MyClassTest.cpp 会出现以下错误:

...gmock/gmock-generated-function-mockers.h(76):错误 C2248:“testing::internal::FunctionMockerBase::FunctionMockerBase”:无法访问在类“testing::internal::FunctionMockerBase”中声明的私有成员1> with 1> [ 1>
F=void (void) 1> ] 1>
.../gmock-spec-builders.h(1656) : 见 'testing::internal::FunctionMockerBase::FunctionMockerBase' 的声明 1 > with 1> [ 1>
F=void (void) 1> ] 1>
这个诊断发生在编译器生成的函数'testing::internal::FunctionMocker::FunctionMocker(const testing::internal::FunctionMocker &)' 1 > 带 1> [ 1>
函数=void (void) 1> ]

错误源于包含 boost::bind 的行。用 void callback(){} 替换 mocked 方法消除了编译错误(但也消除了 Google Mock 的使用,达不到目的)。在不修改测试类的情况下,我尝试做的事情是否可行?

0 投票
2 回答
13717 浏览

googletest - Google Mock:对具有不同参数的同一功能的多重期望

考虑某个模拟函数预计会被多次调用的情况,每次都在某个参数中使用不同的值。我想验证该函数确实被调用一次,并且在某个值列表中的每个值(例如 1、2、5)中只调用一次。

另一方面,我想避免定义一个序列,因为这将决定一个特定的顺序,这是一个我想保持自由的实现细节。

这种情况下是否有某种匹配器或其他解决方案?

我不确定这是否会以任何方式影响解决方案,但我确实打算使用 WillOnce(Return(x)) 和上面列表中的每个值不同的 x。

0 投票
3 回答
28400 浏览

c++ - 模拟非虚方法 C++ (gmock)

我有课

请你能帮助如何在MethodA()不做虚拟的情况下模拟,我不明白高性能依赖注入的概念

0 投票
1 回答
5613 浏览

c++ - 具有非虚拟方法的类中的 GMock 和模拟构造函数

我需要模拟一个只有非虚拟方法的类。这个类有一个复制构造函数。我如何为此编写一个模拟方法。如果我只使用

提前致谢。

0 投票
5 回答
1539 浏览

googletest - 方法和模拟具有相同的类

我有 2 种方法的课程

我想测试 Fun() 方法取决于 FunRet 返回的内容。所以我想模拟 FunRet。我宁愿不想让 FunRet 成为虚拟的。我怎么能这样做?