I’m using CUnit for my project unit testing.
I need to test whether I call libc functions with the right parameters & whether I treat their return values the right way.
for example: if I call the bind(…) function – I would like to check which af param I pass & assert if this is the wrong one, and also I would like to emulate it’s return value & assert if I check it the right way.
For these purposes I would expect the CUnit environment to have a built-in mechanism to let me call a ‘mocked’ bind() function while testing and a real bind() function when running the code – but I can’t find anything like this.
Can you please tell me if I’m missing something in CUnit, or maybe suggest a way to implement this.
Thanks,
Jo.
Unfortunately, you can’t mock functions in C with CUnit.
But you can implement your own mock functions by using and abusing of defines :
Assuming you define UNITTEST when compiling for tests, you can in the tested file (or in a include) define something like this :
In a mock_helper.c file that you will compile in test mode :
Then, in your test file :