# tdd-two **Repository Path**: 1074/tdd-two ## Basic Information - **Project Name**: tdd-two - **Description**: 第二次作业 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-14 - **Last Updated**: 2022-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TDD ## 开发环境 - node v14 - TypeScript - Jest ## 业务目标 "镶金玫瑰"!这是一家魔兽世界里的小商店。出售的商品也都是高价值的。但不妙的是, 随着商品 逐渐接近保质期,它们的价值也不断下滑。你需要开发一个 IT 系统来更新库存 信息。 首先,简单介绍一下我们的系统: - 所有商品都有一个 SellIn 值,这是商品距离过期的天数,最好在这么多天之内卖 掉 - 所有商品都有一个 Quality 值,代表商品的价值 - 商品的 SellIn 值和 Quality 值,它们每天会发生变化,但是会有特例 商品的价格 - 规则说明如下: - 商品的价值永远不会小于 0,也永远不会超过 50 - 商品每过一天价值会下滑 1 点 ,一旦过了保质期,价值就以双倍的速度下滑 - 陈年干酪(Aged Brie)是一种特殊的商品,放得越久,价值反而越高 - 萨弗拉斯(Sulfuras)是一种传奇商品,没有保质期的概念,价值也不会下滑 - 后台门票(Backstage pass)和陈年干酪(Aged Brie)有相似之处: - 越接近演出日,商品的价值反而上升 - 在演出前 10 天,价值每天上升 2 点 - 演出前 5 天,价值每天上升 3 点 - 一旦过了演出日,价值就马上变成 0 ## Tasking - 常规商品 - Given距离过期天数10,价值为20(没过保质期、价值大于0),When按天更新,Then保质期为9,价值为19(保质期减1,价值减1) - Given距离过期天数2,价值为0(没过保质期、价值等于0),When按天更新,Then保质期为1,价值为0(保质期减1,价值为0) - Given距离过期天数0,价值为6(过保质期、价值大于0),When按天更新,Then保质期为-1,价值为4(保质期减1,价值减2) - Given距离过期天数-1,价值为1(过保质期、价值等于1),When按天更新,Then保质期为-2,价值为0(保质期减1,价值为0) --- - 陈年干酪 - Given距离过期天数2,价值为49(没过保质期、价值小于50),When按天更新,Then保质期为1,价值为50(保质期减1,价值加1) - Given距离过期天数2,价值为50(没过保质期、价值等于50),When按天更新,Then保质期为1,价值为50(保质期减1,价值为50) - Given距离过期天数0,价值为20(过保质期、价值小于49),When按天更新,Then保质期为-1,价值为22(保质期减1,价值加2) - Given距离过期天数-1,价值为49(过保质期、价值等于49),When按天更新,Then保质期为-2,价值为50(保质期减1,价值为50) --- - 萨弗拉斯 - Given距离过期天数10,价值为20(保质期任意、价值0-50),When按天更新,Then保质期为10,价值为20(保质期价值不变) --- - 后台门票 - Given距离过期天数15,价值为20(演出前10天以上、价值小于50),When按天更新,Then保质期为14,价值为21(保质期减1,价值加1) - Given距离过期天数13,价值为50(演出前10天以上、价值等于50),When按天更新,Then保质期为12,价值为50(保质期减1,价值为50) - Given距离过期天数10,价值为45(演出前5到10天、价值小于49),When按天更新,Then保质期为9,价值为47(保质期减1,价值加2) - Given距离过期天数10,价值为49(演出前5到10天、价值等于49),When按天更新,Then保质期为9,价值为50(保质期减1,价值为50) - Given距离过期天数4,价值为45(演出前5天、价值小于48),When按天更新,Then保质期为3,价值为48(保质期减1,价值加3) - Given距离过期天数3,价值为48(演出前5天、价值等于48),When按天更新,Then保质期为2,价值为50(保质期减1,价值为50) - Given距离过期天数0,价值为20(演出结束),When按天更新,Then保质期为-1,价值为0(保质期减1,价值为0) ## 编码路线 ## 参考资料 - [Jest 用户指南](https://jestjs.io/zh-Hans/docs/getting-started)