Можно ли в принципе проверять функции проверяемого файла?
Например, я хочу протестировать файл self_test.c, состоящий из следующих функций:
#include "self_test.h"
uint8_t function_1(uint8_t argument)
{
return function_2(argument);
}
uint8_t function_2(uint8_t argument)
{
return (argument+1);
}
с помощьюТестовый файл в основном выглядит следующим образом:
#include "mock_self_test.h"
void test_function_1(void)
{
uint8_t input_value = 8;
stest_function_2_ExpectAndReturn(input_value, 10);
uint8_t output_value = function_1(input_value);
TEST_ASSERT_EQUAL_UINT8(10, output_value);
}
и для завершения файл self_test.h:
uint8_t function_1(uint8_t argument);
uint8_t function_2(uint8_t argument);
Когда я это делаю, компилятор возвращает: «error: Function function_1. Calledбольше, чем ожидалось. "
Полагаю, это плохая практика и может не сработать, но, поскольку моя функция_2 довольно велика, это может сэкономить мне массу работы, поскольку я могу тестировать функцию_1 независимо от функции_2.И я работаю над устаревшим кодом, так что, к сожалению, переписать все с улучшенным интерфейсом тестирования невозможно.
Вывод Ceedling:
[==========] Running 1 tests from 1 test cases.
[----------] Global test environment set-up.
[----------] 1 tests from test_self_test.c
[ RUN ] test_self_test.c.test_function_1
test_self_test.c(22): error: Function function_1. Called more times than expected.
Actual: FALSE
Expected: TRUE
[ FAILED ] test_self_test.c.test_function_1 (0 ms)
[----------] 1 tests from test_self_test.c (0 ms total)