2017-07-07 197 views
0

我有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

这取决于你如何设计你的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