桩模块(Stub)是软件测试技术的一种,在单元测试阶段使用。它用于模拟被测试的模块所调用的模块,以便于单元测试的独立性和简化性[1]。
定义
桩模块(Stub)是一种模拟被测试的模块所调用的模块的技术手段,而非软件产品的一部分。在集成测试之前,为了测试被测模块的功能,需要为其编写一些模拟下级模块功能的“替身”模块,这些专门用于测试的“假”模块被称为被测模块的桩模块。[2]
应用场景
当被测试的单元模块需要调用其他模块的功能或方法时,应设计一个与被调用模块具有相同名称的桩模块(Stub)。这个桩模块不会实际执行任何操作,而是通过返回预设的静态值来模拟被调用模块的行为。例如,如果被测试单元需要调用名为customer的模块中的getCustomerAddress()方法,该方法原本应该是查询数据库并返回某个客户的地址。在这种情况下,设计的同名桩模块(Stub)中的同名方法并不会真正查询数据库,而是直接返回一个预先设定的地址,如"123 Newton Street"。这种设置使单元测试能够在一个相对独立且简单的环境中进行。