-1

有没有办法模拟静态全局变量以在测试函数中使用?或者有什么解决方法?

下面是这种情况的例子:

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;
}
4

1 回答 1

2

我们经常忘记链接器。我们可以使用不同的目标文件来模拟接口。这个 mock-obj 将包含您全局的不同定义。

但是当前的单元测试框架只在代码级别上工作......所以需要一些构建功能来将模拟对象添加到测试构建中。

于 2016-04-13T10:50:24.097 回答