在测试 Rails Helper 定义的方法时,请遵循以下步骤。在 Rails Helper 中定义的方法将用于辅助(helper)视图或控制器,因此,针对这些方法的测试与针对其他 Ruby 类的方法的测试有所不同。
rspec 和 autospec 是 Ruby 用于测试的必备武器。你可以使用以下命令安装 rspec 和 autospec:
gem install rspec autospec
然后,在 Rails Helper 测试场景中,确保使用 describe
和 context
关键词来创建测试用例,例如:
describe ApplicationHelper, type: :helper do
context "some helper method" do
before do
# set expectations before the helper method is called
end
# test helper method
it "should do something" do
allow(helper).to receive(:important_method).and_return("value")
helper.helper_method("foo", "bar") # helper method must return "value"
expect(helper).to have_received(:important_method).with("foo").exactly(1).times
end
end
end
请注意,allow
会允许预期的方法调用,and_return
配置 helper 在调用 helper_method
时需要返回的特定值。
如果你想针对一个特定的 Helper 示例手动测试:
controllers/admin/admin_controller.rb)
内使用 Helper
方法。test/controllers
目录中,创建一个名为 admin_controller_test.rb
的测试文件(例如:helper_test.rb)。
通过 Webrick,运行 rspec
测试:
rspec --tag='functional' spec/admin/admin_controller_spec.rb
领取专属 10元无门槛券
手把手带您无忧上云