本文概述
Rails测试非常简单, 可以为你的应用程序编写和运行。当Rails脚本生成模型和控制器时, 也以相同的方式生成测试文件。 Rails还使用单独的数据库进行测试。每次应用程序测试运行时, 都会重新构建应用程序中的测试数据库, 因此, 在运行测试时, 你始终具有一致的数据库。
Rails使用Ruby Test :: Unit测试库。 Rails应用程序测试通常使用Rake实用程序运行。
Rails测试目录
测试目录包含Rails生成的所有测试文件, 这些文件用于为你的应用程序构建测试。测试目录具有以下目录结构。
test/
fixtures/
functional/
integration/
mocks/
development/
test/
unit/
Rails基本上支持三种类型的测试:
- 功能性
- 积分
- 单元测试
测试目录中的装置允许你设置应用程序可以使用的测试数据。在编写Rails测试时, 可以节省大量时间和精力。
为了编写测试, 你必须首先编写代码, 这些代码将创建测试数据并使数据库进入已知的填充状态。 Rails固定装置可以为你完成大部分工作。
模仿是允许替换难以处理的依赖项的类。
功能测试:功能测试用于测试应用程序的控制器方法。使用script / generate命令生成控制器类时, Rails还将生成功能测试文件, 这些文件将用于编写功能测试。
单元测试:单元测试用于测试模型类中包含的方法。这些测试主要用于测试模型中存在的业务逻辑。这是Rails支持的最流行的测试形式。
集成测试:集成测试允许测试多个控制器之间的交互。允许从应用程序测试更完整的用户方案或案例。使用它的另一个原因是它模拟用户单击并访问构成应用程序的各个页面。
Rails测试生命周期
运行Rails应用程序的测试时, 每次都遵循标准的生命周期。该生命周期包括以下步骤:
- 加载测试夹具-清除数据库表并将夹具数据加载到数据库中。
- 如果测试访问数据, 则从数据库中读取数据。
- 测试运行后, 数据库将回滚到其初始状态。
每当你使用Rake命令运行测试时, Rails都会执行整个生命周期。