ruby on rails——在控制器规范中,如何在生成的视图中找到特定的标签



我知道集成测试是首选,但我需要它在控制器测试中运行,我正在测试一个gem在视图中注入html代码,特别是xhr,所以这不能在功能规范中运行(如果可以,请解释我如何:))

因此,使用rspec控制器测试,您可以断言选择器存在(使用capybara):

response.body.should have_selector('#foobar')

has_selector?将从capybara调用all方法来查找选择器。

我想做的是获取body的最后一个子元素,然后断言它的id是特定的东西

我敢说,这是不可能做到这与have_selector。

我要做的是:

all('body:first-child').first.id.should == '#foobar'

然而,对于Capybara DSL,所有的定义都是这样的(或多或少):

def all(*args)
  page.all(*args)
end

和页面将是空的,除非我使用visit,但它是为集成规格。

如何在rspec控制器测试中使用capybara all方法?

我现在不能测试它,但是在谷歌上搜索了一下之后,它似乎可以做到这一点

def page
  Capybara::Node::Simple.new(response.body)
end

相关内容

  • 没有找到相关文章

最新更新