CodeKata练习之Tennis Game,我的第一个TDD

    下午做入职的TDD培训练习,CodeKata上的网球比赛练习。

    初看题时,人是懵的。我大概不知道我是谁,我在哪,谁在打我。想着费帅,纳豆,娜姐的网球比赛,瞬间想到:这不就是一局网球比赛对各种比分情况输出当前比赛结果嘛。

    来,官网任务翻译的低配版如下:

    1. 赢的人至少需要3点,并且比对手高出2点;

    2. 0对应love,1对应fifteen 15,2对应thirty 30,3对应 fourty 40;

    3. 当双方都取得3点(就是都拿了40分),双方进入 deuce;

    4. 都取得3点后,一方拿到4点,则该方先取得AD(Advanced简写啦)。

    所以,测试用例就能写出来了噻。来,第一个用例(伪代码):

    input:0 vs 0,output:love all

    TDD开始,第一个测试用例的开发代码最简单,写一个getScore函数,参数是双方比赛点数,输出 love all

  测试通过,继续写测试用例(伪代码)

    input:1 vs 1,output:fifteen all

    跑测试,第二个明显不通过,TDD继续。想到双方比分相同,也输出 xxx all。于是,getScore函数增加双方点数相等与否的判断,我还加了一个 点数和分数 的Map,对应关系就是 翻译2 。这样,根据双方当前点数,若相同,输出    点数对应的分数 all

    测试通过,继续写测试用例,考虑到双方都取得40分时,进入 deuce,此时输出 deuce 而不输出 fourty all。测试用例(伪代码)如下:

    input:3 vs 3,output:deuce

  这个时候,对同3点的情况就特殊考虑,在相同点数下加一个if判断,如果是3点,则输出 deuce,否则输出 xxx all。

    测试通过,未完待续,准备煮面


    晚上交作业后再补充


    不补充了

你可能感兴趣的:(CodeKata练习之Tennis Game,我的第一个TDD)