【问题标题】:Mocking a Class For Unit Tests模拟单元测试的类
【发布时间】:2017-07-07 07:05:06
【问题描述】:

我的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 的实例。

如何在这种情况下模拟单元测试?

【问题讨论】:

    标签: c++ unit-testing googletest googlemock


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2017-05-12
      • 2013-02-22
      • 2011-04-11
      • 2020-05-04
      • 1970-01-01
      相关资源
      最近更新 更多