Unit testing 我应该检查模拟函数中的输入变量(指针)吗?

Unit testing 我应该检查模拟函数中的输入变量(指针)吗?,unit-testing,mocking,cmocka,Unit Testing,Mocking,Cmocka,我正在用C语言编写一系列模拟函数 其中一些将指针作为输入变量,我不确定是否应该检查它们(ptr!=NULL) 通常,模拟函数是否负责执行输入检查 如果是,当发现错误时,它应该如何表现? 它是否应该使用框架提供的断言函数?如果您提到的指针是传递给某些模拟函数的参数,您可以使用check\u expected(…)和expected\u value()检查它们 然后会自动报告错误 可以在此处找到一个示例: 如果您真的需要检查它们,这取决于您和您的代码以及您的意见和需求 void function_u

我正在用C语言编写一系列模拟函数

其中一些将指针作为输入变量,我不确定是否应该检查它们(
ptr!=NULL

通常,模拟函数是否负责执行输入检查

如果是,当发现错误时,它应该如何表现?
它是否应该使用框架提供的断言函数?

如果您提到的指针是传递给某些模拟函数的参数,您可以使用
check\u expected(…)
expected\u value()
检查它们

然后会自动报告错误

可以在此处找到一个示例:

如果您真的需要检查它们,这取决于您和您的代码以及您的意见和需求

void function_under_test(){
   char c = 'c'; 
   int ret;
   //...
   ret = subfunction(&c);
   if(ret == 0)
      printf("Success");
   //...
}

int __wrap_mocked_subfunction(int* p_paramater){
   check_expected(p_paramater);
   return mock();
}

test(void **state){
    expect_not_value(__wrap_mocked_functions, p_paramater, NULL);
    will_return(0);

    function_under_test();
}