1

我正在使用带有 rails 3.2 的 minitest。我想定义我自己的“测试”函数来做一些特殊的事情,然后正常进行。

通常,您可以这样定义测试:

class MyControllertest < ActionController::TestCase                        
  test "should note have defined x" do
    assert(!(defined? x))
    get :index
    assert_response :success
  end
end

我希望能够做到以下几点

class MyControllerTest < ActionController::TestCase                        
  special_test "should define X" do
    assert(defined? x)
    get :index
    assert_response :success
  end
end

因此,我在包含的测试助手中尝试了以下内容

class ActiveSupport::TestCase    
  def self.special_test(name)                                                                                                                                                    
    self.test(name) do                                                                                                                                                           
      x=1
      yield                                                                                                                                                                     
    end                                                                                                                                                                            
  end    
end                                                                                                                                                

但是,我得到

undefined method `get' for MyControllerTest:Class

有人可以教我一些关于元编程的知识/如何去做吗?

https://github.com/seattlerb/minitest

4

1 回答 1

1

这在测试示例中很奇怪,您正在显示 test which sublcasActionController::TestCase但您正在定义您的方法ActiveSupport::TestCaseActionController::TestCase如果这是您想要的,请定义您的自定义方法。

于 2012-10-29T20:56:12.270 回答