C++ 模拟框架 : 'Generic' vs 'Declarative'

标签 c++ unit-testing testing mocking

我最近学习了很多有关 C++ 的模拟框架的知识,但有一个问题到目前为止我无法解决:

似乎有 2 种不同类型的模拟框架可用(至少对于 C++):

  • 类型声明式:模拟框架,如 Google Mock需要通过 makros 手动定义每个模拟类
  • 类型通用:类似 HippoMock 的框架提供基于模板的方法,在运行时创建模拟对象

我发现通用框架更容易使用,开发人员不需要自己编写每个模拟对象。然而,有许多可用的声明式框架,尤其是 Google 员工通常知道它们的用途。我问为什么存在这些框架以及它们相对于通用框架的主要优点是什么。

最佳答案

我相信模拟类的“声明式”框架在以下几点方面是有意义的,gmock 的代祷事项是什么?例如:

  • 不依赖任何操作系统(我一直在使用 FreeRTOS 实现工作版本)
  • 对模拟方法处理程序进行细粒度控制
  • 对预期方法调用结果进行细粒度控制

关于C++ 模拟框架 : 'Generic' vs 'Declarative' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16262186/

相关文章:

clang 和 gcc 中的 C++14 可变参数模板参数推断

c++ - 什么时候应该使用 __forceinline 而不是 inline?

unit-testing - 如何检查称为 NSubstitute 的多个重载中的任何一个

ruby-on-rails - 确保 gem 与 Rails 3.x 和 4.0 一起工作的 gem 测试策略?

testing - 运行 Rust 测试时如何在函数内部执行暴力函数验证?

C++ read() 问题

c++ - 我怎样才能把这个qt程序放到一个源代码文件中

java - Spring应用程序上下文无法加载配置文件

angular - 如何在@ngrx/data 中对 EntityCollectionServiceBase 进行单元测试?

python - Django 测试在 Postgresql (8.4) 上失败 - 刷新数据库导致错误