你是否应该设计你的代码以使测试更容易?如果是这样,如何设计 c++ 代码以便于测试。
- 如何在 c++ 中使用依赖注入?
- 我是否应该使用纯接口类作为基类来实现类,以简化创建假测试对象的过程?
- 这会迫使我编写很多虚拟方法。这会影响性能吗?
- 在为 c++ 设计可测试性时,还应考虑什么?
你是否应该设计你的代码以使测试更容易?如果是这样,如何设计 c++ 代码以便于测试。
void Foo(IBar& someBar) { ... }
这个函数接受一个实现了IBar
接口的参数,并对其进行操作。如果你想传入一个虚拟的模拟实现,只需编写一个继承自IBar
的模拟对象并将其传递给Foo
即可。简单明了。
但是你也可以使用模板来实现相同的功能:
template <typename BarType>
void Foo(BarType& someBar) { ... }
...就是这样。 Foo
的主体可以基本保持不变。只要传递给函数的类型公开了我们需要的所有成员,它就可以正常工作,而无需正式从接口类继承,并且没有虚函数和运行时多态性的开销。
我认为首要关注的应该是...