Hello, I created unit tests to test my code. Unfortunately I have a lot of duplicated tests, so I would like to use parametrized tests. Is there any way to use their in Platform.io?
I’m not entirely sure if this is what you’re asking, but you can refactor your C/C++ code to replace constants with a function parameter, and then run the new test function with abitrary new parameters in a loop.
Say the original function is
That can be rewritten and expanded to
void generic_addition_test(int expected, int a, int b) {
TEST_ASSERT_EQUAL(expected, calc.add(a, b));
}
void test_function_calculator_addition(void) {
generic_addition_test(32, 25, 7);
//etc. etc.
//e.g.
int testcases[2][3] = {
{ 32, 25, 7},
{ 3, 2, 1}
};
for(int i=0; i < 2; i++) {
generic_addition_test(testcases[i][0], testcases[i][1], testcases[i][2]);
}
}
Yes, that is what I mean. Thanks. I have one more question what means void in argument of the test_function_calculator_addition?
void
indicates that the function does not take any parameters.
In C, it’s mandatory to use void
. In C++, it’s optional. You can omit it and just write:
void test_function_calculator_addition() {
...
}
1 Like
Thanks for any reply. I know everything I wanted.