gpt4 book ai didi

c - 如何使用 FILE* 参数对 C 函数进行单元测试

转载 作者:太空狗 更新时间:2023-10-29 14:56:27 29 4
gpt4 key购买 nike

我有一个 C 函数 uint8_t command_read(const FILE* const in)in 中读取。我想为该功能编写一个单元测试。是否可以在内存中创建一个 FILE* 用于测试,因为我想避免与文件系统交互?如果不能,有哪些替代方案?

最佳答案

Is it possible to create a FILE* in memory for the test?

当然。对于写作:

char *buf;
size_t sz;
FILE *f = open_memstream(&buf, &sz);

// do stuff with `f`

fclose(f);
// here you can access the contents of `f` using `buf` and `sz`

free(buf); // when done

这是 POSIX。 Docs.

阅读:

char buf[] = "Hello world! This is not a file, it just pretends to be one.";
FILE *f = fmemopen(buf, sizeof(buf), "r");
// read from `f`, then
fclose(f);

This is POSIX too.

旁注:

I'd like to avoid the test having to interact with the filesystem.

为什么?

关于c - 如何使用 FILE* 参数对 C 函数进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15592291/

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