【发布时间】:2009-02-19 19:22:55
【问题描述】:
所以我决定调查 Rails 的测试状态。在阅读了一些关于 Rails 测试文档如何糟糕的 SO 上已接受的答案后,我开始同意。到目前为止,我显然不在了解 Rails 测试的人群中——尽管我对框架非常了解,或者我是这么认为的。
我已经读到,Shouda 是一个很好的插件,所以我正在使用它。我的第一个测试:“确保方法需要一个 ID 参数”......嗯,这是有道理的;我想确保我的控制器上的 before_filter :validate_id 确实有效。这是测试我的索引的 GET 是否按预期方式工作所需的 3 步中的第 1 步。失败!显然,测试环境的运行方式与普通 Rails 堆栈不同:
...
lib/action_controller/base.rb:524:in `process_without_filters'
...
当 ActionController::TestCase 使用 get {} 时,在我能检查的所有地方几乎没有包含过滤器的信息。我应该在哪里加入“Rails 测试人员俱乐部”以便解决这个问题?
context "GET :index requires id" do
setup {
get :index
}
should_redirect_to('/') { }
end
【问题讨论】:
标签: ruby-on-rails integration-testing filter shoulda