第十章:Scala之单元测试
¶主要内容:
- ScalaCheck自动化
- 使用JUnit来测试Scala代码
- 使用依赖注入编写更好的测试
- Specs行为驱动开发
- 基于actor系统测试
截至目前为止,所展示的代码都没有单元测试——为什么我们现在要关心这个问题?围绕代码写测试,而又不提及它做了什么,是希望你更专注于Scala语言本身。现在,本章的目标是希望编写自动化的Scala单元测试,用于更好地构建高质量的软件。
编写精良1的代码,从你编程单元测试开始。通常感性认识是很难编写单元测试,但这章要改变这种心态。我将为你展示,如测试驱动开发和持续集成的练习开始,如何在你的Scala项目中编写测试。测试驱动开发(test-driven development,TDD)就是指在你编写代码之前编写测试。我知道这有点落后,但我保证,这章结束后它将更有意义。你将学习的测试,更多的是设计一个测试,正如设计你的软件一样。你的设计工具将会是代码——更特别地,测试的代码。
我将由介绍自动化测试和开发者如何在真实环境中使用来开始。有两种自动化测试:一种是你自己写的,一种是从你的代码中生成的。首先要介绍的是代码生成的测试,使用ScalaCheck工具,因为它比较容易。Sala是一个强静态类型语言,利用这点,诸如ScalaCheck这样的工具可以为你构建在类型上的函数或类生成单元测试。ScalaCheck是自动化测试的一种很好实现。但要完全信服自动化测试带来的好处,你需要手动编写它们。