深度解读 - TDD(测试驱动开发)(7)

发表于:2017-03-31来源:jianshu作者:SeabornLee点击数: 标签:tdd
当然,我们可以通过 Mock 和 Stub 来隔离 IO,但真的有必要吗? 有人问过 Kent Beck 这样一个问题: 你真的什么都会测吗?连 getter 和 setter 也会测试吗? Ke

当然,我们可以通过 Mock 和 Stub 来隔离 IO,但真的有必要吗?

有人问过 Kent Beck 这样一个问题:

你真的什么都会测吗?连 getter 和 setter 也会测试吗?

Kent Beck 说:公司请我来是为了实现业务价值,而不是写测试代码。
所以我只在没有信心的地方写测试代码。

那对我们这个程序而言,读文件和打印到控制台都是调用系统 API,可以很有信心吧。最没有信心的是中间那写要自己写的业务逻辑。
所以我们可以对程序做一些封装,《代码整洁之道》里说,有注释的地方都可以抽取方法,用方法名来代替注释:

main() {
    String words = read_file('words.txt')
    String[] wordArray = split(words)
    Map<String, Integer> frequency = group(wordArray)
    sort(frequency)
    String output = format(frequency)
    print(output)
}

这样是不是就可以单独为 splitgroupsortformat

原文转自:http://www.jianshu.com/p/62f16cd4fef3