但是要注意,使用[Setup] 越多,测试代码可读性就越差。为了理解测试怎么得到实例,使用的对象是什么类型,人们不得不同时看文件里的两处代码。我告诉我的学生: “想象一下,代码的读者和你从未谋面也无法联系,在你离职两年之后才来读你的测试代码。你使得代码易读的每一个微小的努力,对他们都是极大的帮助。他们如果对你的代码有任何问题,周围都不会有人能够解答,所以你是他们唯一的希望。“如果读代码的人为了能理解你的测试而不得不在两段代码间来回地看,那可不是什么好主意。
请看上面这段单元测试的讲解,有两个问题:
1 、为什么“使用[Setup] 越多,测试代码可读性就越差。为了理解测试怎么得到实例,使用的对象是什么类型,人们不得不同时看文件里的两处代码。” 是因为由于 setup 的存在。所以每执行一次 test 标签的代码就会重新执行一次 m_analyzer = new LogAnalyzer(); 么? 但是这为什么会导致可读性变差。为什么会不得不同时看文件里的两处代码?而且书中说一段测试代码只能使用一个 setup 模块。所以何来“使用[Setup] 越多”的问题呢?
2 、为什么代码中最后一部分 public void TearDown () 说“不是必须的,在真实刹试中请不要使用”
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.