zll11111

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1 一般文件名是用小写单词加下划线分割,但类的名字用骆驼法。例如 sessions_controller.rb中定义SessionsController。

2 helpers内的文件为辅助类,定义了许多方法。这些公共方法一方面为直接提供给view使用,因为view文件中不能写require。另一方面可以为controller使用,同样不用写require,但是一定要include。而test文件夹里的类要想使用帮助类,必须要写require ,例如所有的test文件都会有 require 'test_helper'。这两个处理方法不同的原因可能是helpers类是在rails框架下运行的,可能有特殊处理直接加载,就像Gemfile里的gem不需要使用require,而可以在文件中直接使用。而test文件夹的东西不需要运行服务器就可以测试,没有特殊处理来简化工作,只能用Ruby最基础的语法。

3 test里的helpers文件夹里和test_helper.rb的作用不一样,不是为辅助test环节的方法,而是测试app里的各helper类的方法,起名字有特殊要求,类名应该是被测试的helper类名后加Test,文件名是原来文件名后加_test。例如为了测试app/helpers/sessions_helper.rb里的方法method1,测试文件命名应是test/helpers/sessions_helper_test.rb(其实这个不是必须,只是规范),里面的类名必须为SessionsHelperTest(否则使用method1会报错没有这个方法),这样在测试里可以直接使用method1,而不用require sessions_helper

4 rails4 在控制器的测试文件里,get patch等操作后面只能跟action参数,不能用path和url。例如get :edit,id: @user是对的,但是不能像集成测试里那样写成get edit_user_path(@user)。rails5反过来,必须使用url而不能使用action。

posted on 2016-10-10 00:32  zll11111  阅读(158)  评论(0编辑  收藏  举报