Ruby MiniTest测试设计建议

时间:2014-07-16 19:34:16

标签: ruby-on-rails

我正在测试运行Rails 2.3的Web应用程序上的图像的http / https内容。布局是基本的。我的控制器附带测试目录,包括带测试的功能和集成文件夹。

我对Rails还是比较新的,但我想知道是否有办法创建一个可以跨不同控制器测试附件的文件。例如,我需要测试此Web应用程序上的图像是关于/ Projects / People / Accounts /和Explore控制器上的http或https。而不是打开写入代码行的每个about_controller_test,project_controller_test等文件,我想知道是否有一种方法可以制作包含所有控制器的主文件。

我想要做的是创建一些我可以包含/扩展控制器的模块。这在我脑海中是有意义的,但我遇到了命名约定的问题。如果我想制作一个attachments_test.rb,我将无法做到这一点,因为我没有一个映射到它的attachments_controller.rb文件。我该如何解决这个问题?

我想要的是创建一个名为testing_attachment_protocols_test.rb的文件,该文件不会映射到任何控制器,但我可以将测试放入其中。我希望有一个文件来编写我的测试不同的控制器而不是在几个文件中编写1个测试。这个文件会包含在test_helper.rb中吗?任何帮助,将不胜感激。感谢。

--------- EDIT -----------------------

我想出了我基本上想要为测试实现的结构。以下是我想要进行的测试的一般结构。

require File.dirname(__FILE__) + '/../test_helper'
require 'open-uri'

def controller
  ......
end

class controller; def rescue_action(e) raise e end: end

class controller <  Test::Unit::TestCase

def setup
 @controller = controller
 @request = ActionController::TestRequest.new
 @response = ActionController::TestResponse.new
end

test "attachments url pattern for home page should include http when not logged in" do
  setup
  get :home
  assert not_logged_in
  #puts @response.body
  assert_select("a img", :url =~ /sw.amazonaws/) do |anchor|
    assert_equal 'http', anchor.protocol
  end
 end
end

现在我遇到麻烦的事情是在控制器的方法调用中放入什么。我的目标是尽可能地保持活力。我的目标是为不同的控制器创建属性访问器方法。有什么想法吗?

0 个答案:

没有答案