![软件单元测试](https://wfqqreader-1252317822.image.myqcloud.com/cover/132/47549132/b_47549132.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1 桩对象和测试驱动函数
参考如下代码:
![](https://epubservercos.yuewen.com/BF62AD/26947397804628406/epubprivate/OEBPS/Images/45509_16_1.jpg?sign=1738885976-STB8z0cW2dlJuK21w6Mqvr5dvi8si9bJ-0-3bdbd8b17a9daa09f17a1e155d8dc0dc)
其中,函数function_A()调用function_B(),function_B()又调用function_C()和function_D()。如果被测函数是function_B(),就需要模拟一个函数function_A()来调用function_B(),解决这个问题的方法通常是使用动态自动化单元测试框架。比如采用CUnit,代码如下:
![](https://epubservercos.yuewen.com/BF62AD/26947397804628406/epubprivate/OEBPS/Images/45509_17_1.jpg?sign=1738885976-WeSsuUtufIgjs1Fki2STOwgTdWVEdgSC-0-f001bd2dcc16bff9cfa124698d4f2eb0)
这个被测函数test_process_1()叫作测试驱动函数。又因为函数function_B()调用了function_C()和function_D(),所以要测试函数function_B(),就需要编写两个函数来模拟function_C()和function_D(),代码如下:
![](https://epubservercos.yuewen.com/BF62AD/26947397804628406/epubprivate/OEBPS/Images/45509_17_2.jpg?sign=1738885976-1ab4Kdssxd6N2JmQjNvqpRnaVjLpD5tf-0-807442c76975e75ed242fcfb724bdad8)
其中,这两个函数被称为桩对象(也被称为测试桩),它是测试替身的一种,用于替换真实协作者的对象,在第4.6节会详细介绍。