Ceedling test, тестирование с помощью мок функций

Подскажите почему когда запускаю ceedling тест:

void test_FW_Check_Modules_Ready_To_Test_SHOULD_RETURN_TRUE(void)
void test_FW_Check_Modules_Ready_To_Test_SHOULD_RETURN_FALSE(void) 

по одиночке, оба теста работают корректно.

>>>ceedling test:all

Test 'test_FW_modul_test.c'
---------------------------
Generating runner for test_FW_modul_test.c...
Compiling test_FW_modul_test_runner.c...
Compiling test_FW_modul_test.c...
Compiling mock_FW_cap_functions.c...
Compiling unity.c...
Compiling cmock.c...
Compiling FW_modul_test.c...
Linking test_FW_modul_test.out...
Running test_FW_modul_test.out...

-----------
TEST OUTPUT
-----------

--------------------
OVERALL TEST SUMMARY
--------------------
TESTED:  1
PASSED:  1
FAILED:  0
IGNORED: 0

Когда запускаю одновременно:

#include "unity.h"
#include "cmock.h"
#include "FW_modul_test.h"
#include "mock_FW_cap_functions.h"


void setUp(void)
{

}

void tearDown(void)
{

}

void test_FW_Check_Modules_Ready_To_Test_SHOULD_RETURN_TRUE(void)
{
    set_before_update_readinnes();

    AMS_Get_Init_State_ExpectAndReturn(true);
    CAM_Get_Init_Status_ExpectAndReturn(true);
    PIR_Get_Init_Status_ExpectAndReturn(true);
    ALS_Get_Init_State_ExpectAndReturn(1);
    MAG_Get_Init_Status_ExpectAndReturn(1);
    MW_Get_Init_State_ExpectAndReturn(true);
    TS_Get_Init_Status_ExpectAndReturn(true);

    TEST_ASSERT_TRUE(FW_Check_Modules_Ready_To_Test());
}

void test_FW_Check_Modules_Ready_To_Test_SHOULD_RETURN_FALSE(void) 
{
    set_before_update_readinnes();

    AMS_Get_Init_State_ExpectAndReturn(true);
    CAM_Get_Init_Status_ExpectAndReturn(true);
    PIR_Get_Init_Status_ExpectAndReturn(true);
    ALS_Get_Init_State_ExpectAndReturn(1);
    MAG_Get_Init_Status_ExpectAndReturn(1);
    MW_Get_Init_State_ExpectAndReturn(true);
    TS_Get_Init_Status_ExpectAndReturn(true);

    TEST_ASSERT_TRUE(FW_Check_Modules_Ready_To_Test());
}

один из тестов не проходит

>>>ceedling test:all

Test 'test_FW_modul_test.c'
---------------------------
Generating runner for test_FW_modul_test.c...
Compiling test_FW_modul_test_runner.c...
Compiling test_FW_modul_test.c...
Compiling mock_FW_cap_functions.c...
Compiling unity.c...
Compiling cmock.c...
Compiling FW_modul_test.c...
Linking test_FW_modul_test.out...
Running test_FW_modul_test.out...

-----------
TEST OUTPUT
-----------

-------------------
FAILED TEST SUMMARY
-------------------
[test_FW_modul_test.c]
  Test: test_FW_Check_Modules_Ready_To_Test_SHOULD_RETURN_FALSE
  At line (32): "Function AMS_Get_Init_State.  Called fewer times than expected."

--------------------
OVERALL TEST SUMMARY
--------------------
TESTED:  2
PASSED:  1
FAILED:  1
IGNORED: 0

---------------------
BUILD FAILURE SUMMARY
---------------------
Unit test failures.

одинаковая реализация тестов сделана специально, чтоб проверить работоспособность.


Ответы (1 шт):

Автор решения: Pomador

Необходимо переинициализовать переменные в каждом тесте

→ Ссылка