加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3 – 如何测试控制器模块?

发布时间:2020-12-17 02:11:47 所属栏目:百科 来源:网络整理
导读:我有3个控制器,包括相同的模块. 如何使用Test进行测试:将模块单元放在一个位置? 我应该为每个控制器(不是DRY)编写3个相同的功能测试吗? TestController / TestController1 / TestController2: class TestController ApplicationController include TestM
我有3个控制器,包括相同的模块.

如何使用Test进行测试:将模块单元放在一个位置?

我应该为每个控制器(不是DRY)编写3个相同的功能测试吗?

TestController / TestController1 / TestController2:

class TestController < ApplicationController
 include TestModule

 test_module :test,:only => [:index]
 ...
end

TestModule:

module TestModule
 extend ActiveSupport::Concern

 module ClassMethods
  private

  def test_module(resource,options = {})
   self.before_filter(options.slice(:only,:except)) do
     puts 'test_module'
   end
  end
 end
end

提前致谢 !

解决方法

控制器测试应该准确测试……控制器.因此,您为控制器编写的任何测试都应验证控制器操作是否完全符合您的预期,无论您使用哪些模块来执行操作.将它们视为一个黑盒子,你关心的只是给控制器一些输入,然后验证它们应该是什么输出.

您应该将模块作为自己的实体进行测试,编写模型和测试以充分验证每个模块方法.您的控制器将来可能会发生变化,因此您将始终拥有模块的测试覆盖率.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读