@Eric,
['0 0','1', '15 0’], ['15 0','1', '30 0'],
['0 0','2', '0 15’], ['15 0','2', '15 15’]
@Terry,你问了两个关键的问题,引发了我的思考。:)
1. 单元测试测数据么?
我觉得单元测试需要测这种以数据为主的状态机代码,因为数据是实现的一部分。虽然不用测每种可能的数据,但是也不能因为代码实现是数据驱动的(比如状态机)就不做单元测试了。我觉得 Eric 的测试少了一点,比如 ['11', '15 15’] 这种情况。
2. 状态机是否更不容易重构?
我感觉下面的状态机要重构的确可能难一些。虽然重复数据明显,但是由于主要实现都是数据,如果要加入新的代码来去掉重复,就很可能改变状态机的结构,比如引入一些函数。不过,我要试一下才能确定。
谢谢,
Joseph