集成测试框架与美丽测试实践
1. Parse 对象的独特设计
Parse 对象有一个有趣的特点,它不使用集合来保存对相邻对象的引用,而是使用部分(parts)和更多(more)作为直接链接。这种设计让代码带有一点 Lisp 风格,但对于习惯从函数式角度看问题的人来说,非常直观。
下面是这种编码风格的一个示例,Parse 类中的 last 方法用于返回 Parse 的 more 序列中的最后一个元素:
public Parse last( ) {
return more==null ? this : more.last( );
}
另外,Parse 类的所有字段都是公共的,这很有意思。因为框架无法预见用户可能需要修改这些字段的所有方式。虽然有像 addToTag 和 addToBody 这样的便利方法,但任何想直接修改这些字段的人都可以这么做。FIT 赋予了用户这种权力,但代价是未来版本的 FIT 难以轻易撤销这种访问权限。这不是所有框架设计者都能或应该做出的选择,但如果能接受其后果,这也是一个合理的选择。
2. 框架设计的新思路
在软件开发行业,很多人都从挫折中吸取了教训。我们常常遇到早期编写的软件扩展性不如预期的情况。随着时间推移,我们总结出一些经验法则,试图通过限制选择来保留扩展性。如果你正在开发一个有数千用户的框架,这可能是最好的做法,但这并非唯一的途径。
FIT 展示了一种激进的替代方案:尽可能让框架灵活简洁,不是将其拆分成几十个类,而是谨慎地考虑每个类的内部结构。将方法设为公共的,这样当用户想要偏离常规时
超级会员免费看
订阅专栏 解锁全文
1755

被折叠的 条评论
为什么被折叠?



