Есть ли способ смоделировать глобальную переменную в 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;
}

-1

Решение

Мы часто забываем о компоновщике. Мы можем использовать другой объектный файл для макета интерфейса. Этот mock-obj будет содержать другое определение вашего глобала.

Но текущие фреймворки модульных тестов работают только на уровне кода … Так что для добавления фиктивных объектов в тестовую сборку понадобится некоторое build-fu.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector