5

我有一个uint8_t command_read(const FILE* const in)in. 我想为该功能编写一个单元测试。是否可以为测试创建一个FILE*内存,因为我想避免与文件系统交互?如果没有,有什么替代方案?

4

1 回答 1

9

是否可以在内存中创建一个 FILE* 用于测试?

当然。对于写作:

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。文档。

阅读:

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);

这也是 POSIX。

边注:

我想避免测试必须与文件系统交互。

为什么?

于 2013-03-23T21:35:05.870 回答