有没有办法在 CppUTest 中模拟全局变量?
Is any way to mock global variable in CppUTest?
有没有办法模拟静态全局变量在测试函数中使用?或者有任何解决方法吗?
这种情况的例子如下:
static zsock_t *publish_logs = NULL;
int btak_log_message_reactor(zloop_t *loop, zsock_t *reader, void *arg) {
struct btak_log_message *message;
size_t message_size;
if(zsock_recv(reader, "b", &message, &message_size) == 0) {
push_log_message(message);
if(publish_logs)
publish_log_message(message, publish_logs);
free(message);
}
return 0;
}
我们经常忘记链接器。我们可以使用不同的目标文件来模拟接口。此模拟对象将包含您的全局的不同定义。
但是当前的单元测试框架只能在代码级别工作...因此需要一些构建功能来将模拟对象添加到测试构建中。
有没有办法模拟静态全局变量在测试函数中使用?或者有任何解决方法吗?
这种情况的例子如下:
static zsock_t *publish_logs = NULL;
int btak_log_message_reactor(zloop_t *loop, zsock_t *reader, void *arg) {
struct btak_log_message *message;
size_t message_size;
if(zsock_recv(reader, "b", &message, &message_size) == 0) {
push_log_message(message);
if(publish_logs)
publish_log_message(message, publish_logs);
free(message);
}
return 0;
}
我们经常忘记链接器。我们可以使用不同的目标文件来模拟接口。此模拟对象将包含您的全局的不同定义。
但是当前的单元测试框架只能在代码级别工作...因此需要一些构建功能来将模拟对象添加到测试构建中。