Ruby on rails 在控制器规范中,如何在生成的视图中查找特定标记?
我知道集成测试是首选,但我需要在控制器测试中运行此测试,我正在测试视图中注入html代码的gem,尤其是使用xhr,因此无法在功能规范中运行此测试(如果可以,请向我解释如何:) 因此,通过rspec控制器测试,您可以断言存在选择器(使用capybara):Ruby on rails 在控制器规范中,如何在生成的视图中查找特定标记?,ruby-on-rails,ruby,rspec,capybara,rspec-rails,Ruby On Rails,Ruby,Rspec,Capybara,Rspec Rails,我知道集成测试是首选,但我需要在控制器测试中运行此测试,我正在测试视图中注入html代码的gem,尤其是使用xhr,因此无法在功能规范中运行此测试(如果可以,请向我解释如何:) 因此,通过rspec控制器测试,您可以断言存在选择器(使用capybara): has\u selector?将从capybara调用all方法来查找选择器 我想做的是获取body的最后一个子元素,然后断言它的id是特定的东西 好吧,用have_选择器是不可能做到这一点的 我要做的是: all('body:first-c
has\u selector?
将从capybara调用all
方法来查找选择器
我想做的是获取body的最后一个子元素,然后断言它的id是特定的东西
好吧,用have_选择器是不可能做到这一点的
我要做的是:
all('body:first-child').first.id.should == '#foobar'
然而,对于水豚DSL,所有的定义都是这样的(或多或少):
除非我使用visit
,否则页面将为空,但它是用于集成规范的
如何在rspec控制器测试中使用capybara
all
方法?我现在无法测试它,但在谷歌搜索之后,似乎这就可以了
def page
Capybara::Node::Simple.new(response.body)
end
def all(*args)
page.all(*args)
end
def page
Capybara::Node::Simple.new(response.body)
end