问题标签 [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 回答
55 浏览

c++ - 在乌龟模拟中模拟数组的元素

我需要在海龟模拟中模拟数组的元素。不幸的是,因为turtle mock 宏MOCK_BASE_CLASS添加了额外的“gunk”,例如mock::objectmock::detail::base<>等等,基本类型和mock 类型的大小不再相同。因此,当指向基类的指针指向模拟类型的数组时,指针索引会失败,如下所示。

执行输出

我很感激有关如何解决此问题的建议。请注意,我无法更改模拟框架,并且基本类型必须是指针,以便它将指向数组的指针存储到基本类型或模拟类型。


更新

下面的例子更接近我遇到的问题。MOCK_BASE_CLASS为了模拟虚拟功能,使用实际上是不可避免的。我知道问题在于存储as的数组。我现在找到了一个解决方案,我将根据反馈发布。mockFooFoo

结果

0 投票
1 回答
94 浏览

c++ - Turtle Mock:如何忽略意外来电?

是否可以忽略 Turtle Mock 的意外方法调用?在我的测试期间,模拟方法被多次调用。我想在每个测试中只检查一个带有特定参数的调用。现在我必须编写一个巨大的测试,我必须编写所有方法调用。

0 投票
1 回答
121 浏览

c++ - 如何模拟对 boost.asio 库的调用?

我需要开发一个作为 TCP 服务器客户端的 c++ 类,我们称之为 myManager,这个类将包含一些方法:

  • 连接()
  • 断开()
  • send_command(std::string msg)
  • 获取状态()
  • 电子抄送

所有这些方法都会执行一些操作,例如设置一些内部变量,调用 boost::asio::ip::tcp 函数来执行实际工作,最后该方法将检查 boost::asio:: 的返回值ip::tcp 调用,根据 boost::asio 调用的结果更新一些内部变量并完成。如何模拟此函数调用以便以最有效的方式执行单元测试?编写 boost.asio 库的模拟实现似乎有点矫枉过正。

请注意:

  • 我使用turtle 作为模拟框架,但它似乎不支持这个功能,因为它只支持mock_objects。
  • 我不想将内部对象添加到 myManager 以包装对 boost.asio 的调用。
0 投票
0 回答
29 浏览

c++ - 如何模拟对 boost::posix_time::microsec_time::local_time() 的调用?

我在尝试测试 cpp 类的某些功能时遇到了一些问题。我正在测试我的类,我们称之为 myManager,它有一个名为 generateActionCommand 的公共方法,它使用 boost posix_time 函数 local_time() 返回一个 ptime 结构,以便生成格式为“timestamp,id,CMD_TYPE”的命令,其中:

  • timestamp 是一个字符串,表示机器的时间为 hh:mm:ss.ms;
  • id 是一个整数
  • CMD_TYPE,是一个字符串,例如“START”

现在,我正在使用 boost.test 和 turtle-mock 测试 myManager 并且我已经编写了一些单元测试并使用模拟来模拟其他类,但是我如何测试时间戳是否正确生成?(我可以测试函数尊重格式,使用正则表达式,但我不能保证返回的时间。我想使用 MOCK_FUNCTION 模拟函数,但它似乎不起作用。

下面是我要测试的方法的代码: