问题描述
我正在使用AWS C ++ SDK通过AWS::Transfer::TransferManager
在AWS上下载/上传文件。我想对利用TransferManager
的客户端类进行单元测试,并且需要模拟TransferManager
。 AWS TransferManager
类是具体类,而不是抽象类。我该如何模拟呢?
解决方法
请参见this answer,其中介绍了一种称为“高性能依赖注入”的技术。
基本上,它使您可以使用模板在编译时(而不是在运行时,如常规的独立依赖注入)定义非虚拟类的依赖项注入。缺点是您必须将其保存在头文件中。