Sobre testing y CppUtest: es posible ignorar una llamada concreta en un test?

15 views
Skip to first unread message

Geni Suarez

unread,
Jan 3, 2017, 3:13:51 AM1/3/17
to Embebidos32

Ante todo feliz año nuevo y felices fiestas a todos.

Concretando un poco más el asunto del post, la pregunta es saber si es posible, dentro de un test case, evitar o ignorar la llamada a una función mockeada, de forma que no se produzca un error cuando ejecute el test. Pues suprimirla sin más obviamente da un fallo de test. 

Por ejemplo: 

TEST(RFID_Drv,RFID_DRV_Init_test )
...
mock().expectOneCall("HAL_AS393x_CommandStrobes");
mock().expectOneCall("HAL_AS393x_ReadRegisters").withParameter("cRegAddress", 0x0E).withParameter("cNbBytes", 1).andReturnValue(TEST_INPUT_DATA_VALUE);
mock().expectOneCall("HAL_AS393x_WriteRegisters").withParameter("cRegAddress", 0x01).withParameter("cNbBytes", 1).withParameter("pcBuffer", &RFIDRegisterMap[1]) ;
...
}

Imaginad que el 2º mock, en rojo, es el que quisiera ignorar (como si la llamada no fuera evaluada por el test), pero el resto sí. Es decir, no quiero evaluarla. Si hay un error o no, no quiero reportarlo. Pero todo el resto del test case sí, las llamadas de antes y las de después. 

Por otra parte traté de usar la instrucción ignoreothercalls sin éxito. Creo que no comprendí cómo usarla. O tal vez no sirva para lo que estoy sugiriendo. 

Hay alguna forma de evitar evaluar una única llamada a una función mockeada? 

Gracias de antemano!

Saludos.
Reply all
Reply to author
Forward
0 new messages