ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

21、模拟与存根:信用卡收费测试示例

21、模拟与存根:信用卡收费测试示例

模拟与存根:信用卡收费测试示例

1. 模拟方法调用与闭包的使用

在测试中,有时需要模拟方法的调用情况,以验证程序的行为是否符合预期。例如,有如下代码:

basket.addProduct camera basket.checkout(customer) then: "credit card is charged" 1 * creditCardSevice.sale({amount -> amount == basket.findOrderPrice()}, { client -> client.vip == false})

这里使用了两个闭包,分别对应sale()方法的两个参数。第二个闭包检查对象的单个字段(客户类的vip字段),第一个闭包调用外部方法findOrderPrice()进行计算。

整行代码的含义是:“当这个单元测试完成时,我期望sale方法恰好被调用一次。它应该有两个参数。第一个参数应该等于basket.findOrderPrice()的结果。第二个参数应该是一个包含vip字段的对象实例,且vip字段的值应该为false”。如果这些条件不满足,Spock 测试将失败,只有所有条件都正确,测试才能通过。

2. 信用卡收费的两步流程

在实际的电商应

返回列表