问题标签 [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.
c++ - 在乌龟模拟中模拟数组的元素
我需要在海龟模拟中模拟数组的元素。不幸的是,因为turtle mock 宏MOCK_BASE_CLASS
添加了额外的“gunk”,例如mock::object
,mock::detail::base<>
等等,基本类型和mock 类型的大小不再相同。因此,当指向基类的指针指向模拟类型的数组时,指针索引会失败,如下所示。
执行输出
我很感激有关如何解决此问题的建议。请注意,我无法更改模拟框架,并且基本类型必须是指针,以便它将指向数组的指针存储到基本类型或模拟类型。
更新
下面的例子更接近我遇到的问题。MOCK_BASE_CLASS
为了模拟虚拟功能,使用实际上是不可避免的。我知道问题在于存储as的数组。我现在找到了一个解决方案,我将根据反馈发布。mockFoo
Foo
结果
c++ - Turtle Mock:如何忽略意外来电?
是否可以忽略 Turtle Mock 的意外方法调用?在我的测试期间,模拟方法被多次调用。我想在每个测试中只检查一个带有特定参数的调用。现在我必须编写一个巨大的测试,我必须编写所有方法调用。
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 的调用。
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 模拟函数,但它似乎不起作用。
下面是我要测试的方法的代码: