我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
的实例。
如何在此方案中模拟单元测试?
答案 0 :(得分:0)
这取决于您设计class A
和class 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
。