gpt4 book ai didi

c++ - 静态函数的单元测试设计模式

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:06 24 4
gpt4 key购买 nike

我正在编写一段简单的 C++ 类,并尝试为代码创建一个单元测试用例。

代码很简单:

class Foo
{

static int EntryFunction(bool flag)
{
if(flag)
{
TryDownload();
}
else
{
TryDeleteFile();
}

return 0;
}

static void TryDownload()
{
// http download code
}

static void TryDeleteFile()
{
// delete file code
}
}

问题是,根据UT的概念,我们不能在网络连接上进行中继。所以unittest无法真正运行下载代码。我的最终目标只是测试代码路径,例如:当传入TRUE时,下载代码路径应该命中,否则删除逻辑应该命中。我正在考虑覆盖此类,以便可以覆盖下载和删除功能以仅设置标志和 noop,但这些功能是静态的。

我想知道在这种情况下什么是测试它的好方法?

最佳答案

我认为这取决于您的 TryDownload 和 TryDelete 函数中的内容。如果他们使用其他一些对象/函数来执行他们的任务,您可以配置这些对象的模拟,这样您的 TryDownload 和 TryDelete 就不知道他们并没有真正下载/删除任何东西。

如果您没有这样的对象/函数(所有内容都包含在 TryDownload/TryDelete 中),有人可能会争辩说该代码不适合进行单元测试,因为它不能被分解成小单元。在这种情况下,您唯一的选择是一个实际的 Web 服务(可能在本地主机上运行),让这些功能完成它们的工作。

关于c++ - 静态函数的单元测试设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20668966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com