模拟单元测试类

时间:2017-07-07 07:05:06

标签: c++ unit-testing googletest googlemock

Class A有另一个Class B的实例。我在Class B完成了对独立代码的单元测试。对于其他操作,Class A调用Class B的方法,使用其他类进行一些处理,然后调用Class B的方法。

我的问题是如何模拟Class A的依赖关系并完成Class B的单元测试?如果Class B使用Class A的实例,我可以模拟Class A并完成任务。但是,在我的情况下,Class A使用Class B的实例。

如何在此方案中模拟单元测试?

1 个答案:

答案 0 :(得分:0)

这取决于您设计class Aclass B

的方式

如果它们经过精心设计,那么您可以轻松地为interface IB - B接口(使用GoogleTest和GoogleMock)进行模拟实现,然后在class A的单元测试中使用此模拟实现。要了解如何使用GoogleMock,请查看GoogleMock CheatSheet

否则,您可能遇到类似Google Mock: Mock private variable member that is instantiated in target class's constructor的情况,那么您可能需要使用一些preprocessor directives来破解class A