我想隔离特定节点进行测试。
例如,而不是
get :show
response.should have_content(@user.name)
能够写出类似的东西会更具描述性/正确性
get :show
profile = response.find_selector("div.user-profile")
profile.should have_content(@user.name)
可能吗?
更新
在阅读了彼得的答案但仍然没有找到元素之后,对此有了进一步的了解。
在app\views\users\index.html.erb
<h1>Users</h1>
<div id="test"></div>
在spec\controllers\users_controller_spec.rb
require 'spec_helper'
describe UsersController do
render_views
it "should should have header" do
get :index
response.should have_selector("h1", content: "Users")
end
it "should show user profile" do
get :index
node = page.find_by_id("test")
p node
end
end
第一次测试通过,第二次测试ElementNotFound
出错。我可能只是在做一些愚蠢的事情,因为这是我第一次接触 Rails。