模拟类型是我也需要模拟的方法的返回类型的模板参数

时间:2019-08-13 13:37:09

标签: c++ unit-testing mocking future

我正在编写一些使用第三方库的代码。有问题的库提供了有关具体类而不是接口的API。这使得编写针对MY代码且不依赖于库实现细节的测试变得困难。

据我了解,标准做法是拥有一个提供与库相同功能的接口。然后,我可以将库(或其一部分)包装在实现新接口的类中。而且我可以拥有接口的其他(模拟)子类,这些子类可用于测试我的代码。

我需要模拟的库部分看起来像这样。

sys.argv[0]

我将需要同时模拟两种类型:class Connection { public: ... future<shared_ptr<Widget>> CreateWidget(); ... }; Connection。假设我有一个名为Widget的接口。它可能具有带有以下签名的方法:IWrapperConnection。但是这种方法行不通,因为该库返回了future<shared_ptr<IWrapperWidget>> CreateWidget(),而我对此无能为力。

似乎我需要某种方法,例如使用函数future<shared_ptr<Widget>>或类似方法将future<X>转换为future<Y>

请告知在这种情况下如何进行。

0 个答案:

没有答案