问题标签 [turtle-mock]

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 投票
2 回答
8669 浏览

c++ - 在 Turtle 中为常量方法创建 Mock

我有,

如何为这个虚拟 bool ret() const 方法创建模拟类?

谢谢!

0 投票
1 回答
217 浏览

c++ - 在单个 MOCK_EXPECT 中同时调用返回和调用操作

我可以在一个 MOCK_EXPECT 调用中同时调用返回和调用操作吗?喜欢,

谢谢

0 投票
1 回答
631 浏览

c++ - Turtle(模拟框架)编译错误

我正在尝试在 Turtle 中编译一个简单的示例(使用 boost 单元测试框架),并从 Turtle 中获取编译错误。

我假设 Turtle 并没有真正的错误,这是我做错或不兼容的事情。

任何帮助,将不胜感激。


这个例子:

** 我已经提炼了它,所以它甚至不使用任何 Turtle 功能,只是包含它会导致错误。

我得到的错误:

编译行:g++ test.cpp -o test -I ../turtle/include/ -lboost_unit_test_framework

我正在使用:g++ (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) Turtle 1.2.4

0 投票
2 回答
189 浏览

c++ - 为什么在 Boost Turtle 中使用 MOCK_NON_CONST_METHOD_EXT 作为运算符 float()?

我正在使用 Boost 1.46 和 Turtle lib 1.2.4 和 Visual Studio Express 2013 的编译器。我有以下类来模拟:

当我用 MOCK_NON_CONST_METHOD 模拟 operator() 时:

我遇到了一堆编译器错误,例如语法错误'operator'等等。但是当我用 MOCK_NON_CONST_METHOD_EXT 模拟它时:

一切都很好,完美无缺!根据http://turtle.sourceforge.net/turtle/reference.html带有 EXT 后缀的 MOCKS 用于“不支持可变参数宏的编译器”,但我使用的那个有支持(用这些例子检查:http:// /msdn.microsoft.com/en-us/library/ms177415.aspx)。文档的其余部分对此案例并不十分清楚。

有人能解释一下这里是怎么回事吗?为什么我不使用 EXT 后缀 MOCK 版本时会出现错误?

0 投票
2 回答
2752 浏览

c++ - 如何使用指针参数模拟方法

是否可以模拟检索指针(或引用)作为参数并更改指向对象的方法?

我使用海龟库 - http://turtle.sourceforge.net/ -> 用于 Boost 的 C++ 模拟对象库。(我知道它不是流行的库,但在其他库中可能类似)。

例如:我需要将方法模拟为:

下一个 SUT 在代码中使用 x 值:(

在expectations我可以设置我的模拟返回什么。但是如何修改论点呢?

怎么做?

0 投票
1 回答
1936 浏览

c++ - 如何使用 boost::test 设置 c++ 龟模拟库?

我正在尝试使用 boost::test 框架设置turtle-mock库。

我不知道该怎么做,文档中也没有提及...

我试图简单地将库源复制到 boost/include 中。我还尝试将海龟目录复制到我的项目中,然后添加一个指向海龟文件夹的 CMake INCLUDE_DIRECTORIES 指令。

我只是试图包括乌龟......

然后我得到了这个错误:

(“ Aucun fichier ou dossier de ce type ”的意思是“没有这种类型的文件或目录”)

这意味着什么 ?我该怎么办?

谢谢 !

0 投票
3 回答
758 浏览

c++ - 如何对在测试对象内部创建的模拟对象产生期望?

我想对一个看起来像这样的类进行单元测试:

我想对这个类进行单元测试,所以我为 T 创建了一个模拟类:

然后我想在测试用例中使用它:

我如何对这个对象做出期望?我的第一个想法是将所有创建MockT的实例存储在构造函数的静态容器中,然后从析构函数的容器中删除它们。如果对象是用不同于使用它的方法创建的,这将起作用,如下所示:

但是为此我需要修改我的类的接口,我真的不想这样做。还有什么我可以做的吗?

0 投票
2 回答
936 浏览

c++ - Turtle Mock:如果模拟类方法返回值,则 MOCK_EXPECT 失败

我在董事会潜伏了很长时间,不用说你们是最棒的,我很感激你们挽救了我的工作。这是我第一次在这里发帖,希望不要搞砸。

我正在为 Linux(虚拟化 Ubuntu 16.04 amd_64)编写 C++ Boost 应用程序,并使用 Turtle Mock 作为模拟框架,使用 Boost Test 作为测试框架。当我尝试测试使用依赖注入技术的类时,我会模拟需要提供给测试类的类,以便验证它们的调用顺序。到目前为止一切顺利,但问题来了。我正在使用 MOCK_BASE_CLASS(MockAClass, AClass) 来覆盖真实 AClass 的虚拟方法,并使用新的 MockAClass 继续我的测试。假设 AClass 有一个虚方法 int getTest(int),而 MockAClass 有 MOCK_METHOD(getTest, 1, int(int)),在为 MockAClass 对象的 getTest 方法设置期望和返回值后,调用该方法,期望在大多数情况下是 MOCK_EXPECT(objMockAClass.getTest)。at_least(1) 永远不会被验证。我可以控制返回值,但调用永远不会在发生时得到验证。这仅在函数返回值时发生(例如,如果函数为 void getTest(int) 则验证将通过)。

我附上了我的问题的一个简单 PoC,它将在我的系统上失败。

0 投票
0 回答
148 浏览

c++ - BoostTest:无法访问受保护的成员

我正在使用 BoostTest 框架(版本 1.57.0)和 Turtle 作为模拟库(版本 1.3.0)。我可以在测试用例中访问公共和私有功能,但我无法访问受保护的功能。我可以使用 Turtle 的 MOCK_BASE_CLASS 模拟这些受保护的函数。例子:

我不明白为什么我可以访问 RealObject.privateFunction(),但不能访问 RealObject.protectedFunction()。

我没有设置测试框架,但我找不到任何允许 BoostTest 访问私有成员的地方。

0 投票
1 回答
791 浏览

c++ - 使用海龟模拟来模拟对象以进行 boost::test

我正在尝试使用turtle和boost创建一个带有模拟对象的单元测试。但是该示例不起作用,我找不到错误。我希望没有错误,但结果是:

计算器.h:

计算器.cpp:

视图.h:

查看.cpp:

计算器.spec.cpp:

生成文件:

当我将测试更改为时,单元测试不会产生错误

我想念什么?我的测试问题出在哪里?