写程序不要自以为是,需要花时间理一理

本文详细介绍了交接班打卡系统的业务逻辑设计与单元测试用例。系统支持正常与补打卡,根据不同班次和时间点判断打卡状态,如早退、正常或迟到,并通过单元测试确保代码逻辑正确。

复杂业务场景也是一步步理出来的,写程序不要自以为是,需要花时间理一理,对锻炼思维,做到胸有成竹大有裨益。
今天下午花了4小时梳理之前需求及代码逻辑。
交接班打卡需求点
1、用户在打卡点一个小时内可以打交接班卡,超过一个小时后只能打补交接班卡;交班卡提前一个小时内算早退,延后一个小时内算正常;接班卡提前一个小时内算正常,延后一个小时内算迟到。
2、用户补交接班卡选择的日期不能超过当前日期;用户补交接班卡不能在可以正常打交班卡的时间范围内。
按需求模拟一家企业
A企业排班如下
早班(8:00-14:00)
中班(14:00-22:00)
晚班跨天(20:00-8:00)
用户u1,u2
场景一(正常交接班)
早上8:00的交接班:u1值晚班跨天,u1在7:00-9:00可以打交班卡,7:00-8:00(不包含8:00)打交班卡算早退;8:00-9:00(包含9:00)打交班卡算正常;超过9:00只能补交班卡。u2值早班,u2在7:00-9:00可以打接班卡,7:00-8:00(包含8:00)打接班卡算正常;8:00-9:00(包含9:00)打接班卡算迟到;超过9:00只能补接班卡。
场景二(补交接班)
用户选择日期和班次提交补卡,系统判断日期和班次是否符合补卡要求,符合要求则补卡成功。
概要设计
交班
1、用户选择交班+晚班跨天提交,系统判断是否7:00-9:00,不在,提示该时间点不能打交班卡;在,则记录早退或正常打卡。值班记录算到前一天。
2、用户选择交班+早班提交,值班记录算到当天。
3、用户选择交班+中班提交,值班记录算到当天。
接班
用户选择接班,不管啥班次,值班记录算到当天。
补交班
用户选择班次+日期,系统判断是否在正常的交班时间内,在,提示该时间点可以正常交班,不能补交班。
补接班
用户选择班次+日期,系统判断是否在正常的接班时间内,在,提示该时间点可以正常接班,不能补接班。

单元测试用例(单元测试用例的设计重点是根据自己对代码逻辑的把控和业务场景来设计用例覆盖
交班
1、晚班跨天+6.50(当前时间点,下面所有的时间都是当前时间点) 提示该时间点不能打交班卡;
2、晚班跨天+7.00 早退,交班记录算到前一天;
3、晚班跨天+8.05 正常,交班记录算到前一天;
4、早班+12.55 提示该时间点不能打交班卡;
5、早班+13.50 早退,交班记录算到当天;
6、早班+14.10 正常,交班记录算到当天;
接班
1、晚班跨天+18.50 提示该时间点不能打交班卡;
2、晚班跨天+19.50 正常,接班记录算到当天;
3、晚班跨天+20.05 迟到,接班记录算到当天;
4、早班+6.50 提示该时间点不能打交班卡;
5、早班+7.50 正常,接班记录算到当天;
6、早班+8.05 迟到,接班记录算到当天;
补交班
1、晚班跨天+当天日期+8.05  提示正常交班时间点,不能补交班
2、晚班跨天+当天日期+9.05  补交班成功
3、晚班跨天+非当天日期+8.05  补交班成功
4、晚班跨天+非当天日期+9.05  补交班成功
5、早班+当天日期+14.10  提示正常交班时间点,不能补交班
6、早班+当天日期+15.10  补交班成功
7、早班+非当天日期+14.10  补交班成功
8、早班+非当天日期+15.10  补交班成功
补接班
1、晚班跨天+当天日期+20.05  提示正常接班时间点,不能补接班
2、晚班跨天+当天日期+21.05  补接班成功
3、晚班跨天+非当天日期+20.05  补接班成功
4、晚班跨天+非当天日期+21.05  补接班成功
5、早班+当天日期+7.10  提示正常接班时间点,不能补接班
6、早班+当天日期+9.10  补接班成功
7、早班+非当天日期+7.10  补接班成功
8、早班+非当天日期+9.10  补接班成功
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值