我在主cpp中多次使用了一些外部依赖函数,我试图为单元测试准备代码,所以我想用模拟实现来替换外部依赖,我将如何在主cpp文件中将那些转换为模拟实现?
//ExternalDependencies.hpp
#include <cstdint>
#include <set>
#include <unordered_set>
namespace lab04{
namespace task_common{
namespace project{
uint32_t lab04::task_common::project::CalculateID(const uint32_t id)
{
constexpr uint32_t temp= 0xFFF0;
return id& temp;
}
inline StreamType lab04::task_common::project::GetType(const uint32_t width)
{
switch (width)
{
case 1:
Type = Type::Short;
break;
case 0:
Type = Type::Long;
break;
default:
THROW(ConfigErr, "Eror!");
}
return Type;
}
uint32_t lab04::task_common::project::CalculateBS(const uint32_t Count, const uint32_t Size)
{
return ((Count + 146) *(Size * 1676));
}
}
}
}
基于你的问题描述,我真的只能猜测你到底想要实现什么。但是作为一个概括的陈述:单元测试几乎总是在您想要测试的类(和/或它们的参数化)的健壮干净的接口使用中起起落落,至少如果嘲讽/断章取义是一条路的话。因此,如果您要测试的类使用了许多来自您想要模拟的标准库的数据类型,那么为您的类的输入应用一个合适的抽象。当然,这始终是一个相称性的问题,至少如果类实际上并不意味着存在于多态环境中。如果是这样的话,嘲笑可能就不是办法了。