【发布时间】:2019-09-30 19:32:50
【问题描述】:
我试图在 C 项目的单元测试中“模拟”一些东西。 我正在使用 Check 框架进行测试,并且我有一个从磁盘上的文件中读取内容来验证内容的函数。
我的功能是:
#include "verifier.h"
#include <stdio.h>
int verify_content(char *path, char *verify_string) {
File *fptr
fptr = fopen(path, "r")
// Do verification
return 0
我的测试是
START_TEST (verify_content_test)
{
char *test_path = "test_path";
char *test_string = "unique_string_content_here";
ck_assert_str_eq(verify_content(test_path, test_string), 0);
}
END_TEST
但是,我不希望从磁盘读取它,因为这会很慢,而且我必须拥有多个静态文件来进行测试。
有没有办法“模拟”/“伪造”fopen?
我还是 C 开发的新手,对 C 中的单元测试还是超级新手,所以如果我应该以不同的方式解决这个问题,请指出正确的方向。
【问题讨论】:
标签: c unit-testing mocking