3
Je souhaite tester un appareil client/serveur. Le client appelle le serveur, le serveur appelle une fonction de rappel. Quelque chose comme:Comment tester unitairement une fonction de rappel? (C++ Boost Unit test)
void CallBack()
{
BOOST_SUCCESS(); // test is successful if this is called
}
BOOST_AUTO_TEST_CASE(ConnectionTest_ClientCallback)
{
CallServer(); // server will do work and call CallBack()
sleep(20);
BOOST_FAIL("Server hasn't called CallBack() within specified time limit.");
}
Mais ce qui précède ne fonctionnera pas parce CallBack() pourrait être appelé lors de l'un des tests. Y a-t-il une meilleure manière de faire cela?
Vous avez probablement voulu pour dire 'BOOST_CHECK_MESSAGE (callbackCalled," Le serveur n'a pas appelé CallBack() dans la limite de temps spécifiée. ")' au lieu de 4 lignes? – kizzx2
@ kizzx2: Je n'étais pas au courant - j'amenderai ma réponse. –