单元测试涉及失败的代码路径的最佳方法是什么malloc()
?在大多数情况下,这可能无关紧要,因为您正在做类似的事情
thingy *my_thingy = malloc(sizeof(thingy));
if (my_thingy == NULL) {
fprintf(stderr, "We're so screwed!\n");
exit(EXIT_FAILURE);
}
但是在某些情况下,除了死亡之外,您还有其他选择,因为您已经分配了一些额外的东西用于缓存或其他任何东西,并且您可以回收该内存。
但是,在那些您可以尝试从失败malloc()
中恢复的情况下,您在非常不寻常的代码路径中做一些棘手且容易出错的事情,这使得测试变得尤为重要。你实际上是怎么做的?