rubyonrails test 小记
1、rubyonrails在使用脚手架生成模版文件时会自动生成controller 和model 的测试文件。controller的测试文件主要是测路由和返回状态是否正确,而model测试文件主要是针对数据逻辑的单元测试。
2、大部分关于数据的逻辑应该写在model里,这样无论是从数据库里读出还是存入都会经过逻辑的判断。ruby提供了简便的validates方法,该方法在model自己的test文件里进行测试。
3、ruby有三个数据库,分别是开发数据库、测试数据库、生产数据库。正是由于测试数据库的存在,rubyonrails的测试数据准备非常的简单方便,与开发和生产过程完全隔离。fixture文件夹是专门用来存放测试数据库测试数据的,每次测试开始前,测试数据库都会被清空,并存入fixture文件数据。这里只要注意fixture文件的命名即可,应该是要和数据库表名一致。并且在测试代码中不用刻意引入fixture文件,会自动引入同名文件。seed.rb是用来导入开发数据库的。
4、在测试代码中使用实例数据有一种简便的方法就是 数据库表名作为方法名,参数是fixture里定义的数据名,非常方便的创建了一个好用的实例。
总结来看rubyonrails的测试目的非常明确,使用起来也非常人性化。