У меня есть общая библиотека, для которой мне нужно написать тесты. Допустим, в библиотеке есть функция func ():
// from the library
<some_type> func(<some_params>); // signature of the function func
В документации библиотеки говорится, что эта функция должна вызываться при определенных условиях. Чтобы проверить это требование, я пишу свою собственную функцию func () с той же сигнатурой в тестовом файле:
// test.cpp
bool is_func_called = false;
<some_type> func(<some_params>) {
is_func_called = true;
}
Правильный ли этот подход? Моя реализация func () гарантированно переопределит реализацию в библиотеке?
А иногда необходимо иметь возможность декорировать func () из библиотеки (вместо переопределения):
// test.cpp
bool is_func_called = false;
<some_type> func(<some_params>) {
is_func_called = true;
func(); // a call to the implementation in the library
}
Как получить доступ к реализации в библиотеке, если я переопределил ее?
Среда: Ubuntu, g ++.
В настоящее время я работаю с общей библиотекой. Но я на самом деле интересуюсь как общими, так и статическими библиотеками.