gpt4 book ai didi

c++ - C++ 中依赖注入(inject)的接口(interface)与模板

转载 作者:IT老高 更新时间:2023-10-28 21:36:34 27 4
gpt4 key购买 nike

为了能够对我的 C++ 代码进行单元测试,我通常会向被测类的构造函数传递一个或多个对象,这些对象可以是“生产代码”或假/模拟对象(我们称之为注入(inject)对象)。我已经这样做了

  1. 创建一个“生产代码”类和 fake/mock 类都继承的接口(interface)。
  2. 使被测类成为模板类,将注入(inject)对象的类型作为模板参数,并将注入(inject)对象的实例作为构造函数的参数。

一些随意的想法:

  • 在我们有了概念 (C++0x) 之前,只有文档和参数命名会暗示要为被测类提供什么(使用模板时)。
  • 并非总是可以为遗留代码创建接口(interface)
  • 接口(interface)基本上只是为了能够进行依赖注入(inject)而创建的
  • 以同样的方式:对被测类进行模板化只是为了启用依赖注入(inject)

你的想法是什么?这个问题还有其他解决方案吗?

最佳答案

使用 C++,还有另一种选择 - 您将模拟类命名为与真实类完全相同的名称,并且在链接单元测试时,只需将它们与模拟对象/库文件链接,而不是真实的。

关于c++ - C++ 中依赖注入(inject)的接口(interface)与模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1127918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com