# taxi **Repository Path**: chenyuan_1990/taxi ## Basic Information - **Project Name**: taxi - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-09-07 - **Last Updated**: 2021-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 出租车问题 本项目用于学习TDD基础,包括测试替身。 ## 问题描述 请写一个程序在出租车提交行程后(submit), 计算金额,打印小票并支付. * 任务1: 计费 * 计费规则 * 不大于2公里时只收起步价6元 * 超过2公里时每公里0.8元 * 超过8公里则每公里加收50%长途费 * 停车等待时加收每分钟0.25元 * 提示: * 创建Taxi类 * Taxi#calculate()方法计算车费 * 任务2: 打印小票 * 要求: 计费之后,调用打印机(Printer)打印小票(里程/等待时间/金额) * 制约条件: 假设打印机还没有准备好 * 提示: * 创建空Printer对象, 包括尚未具体实现的print()方法 * Taxi#submit()调用Printer#print()进行打印 * 使用Mock模拟Printer * 任务3: 支付 * 要求: 计费之后,远程调用支付接口 * 制约条件: 假设具体支付机制还没有准备好 * 提示: * Taxi#submit()调用Taxi#pay() * 使用Spy模拟Taxi#pay() 知识点: * 通过本节课掌握自动化单元测试的基本方法: * 单元测试的过程 * 单元测试的原则 * 单元测试的代码组织与命名约定 * 单元测试的最佳实践 * 使用Mock/Spy 作业: * 重新实现课程中讲过的逻辑 * 独立完成剩余的逻辑 * 尝试先实现单价,后实现起步价