gpt4 book ai didi

ruby-on-rails - 在 Rails + RSpec 中对 String 对象使用 have_selector

转载 作者:行者123 更新时间:2023-12-04 20:42:45 24 4
gpt4 key购买 nike

我正在为 lib/目录中的文件编写规范。
我在那里的方法之一返回一个 HTML 字符串,但随后我尝试了类似的方法:

expect(subject).to have_selector("p:eq(1)") do |first_p|

它给了我以下错误:
Failure/Error: expect(subject).to have_selector("p:eq(1)") do |first_p|
NoMethodError:
undefined method `has_selector?' for #<String:0x007f93798a8338>

我该如何解决这个问题?我应该用另一个特定对象包装字符串对象吗?我试过 Nokogiri::HTML.fragment() 但它也没有奏效。我想我应该用一些 webrat 的对象或类似的东西包装它,但我不知道如何到达那里。提前致谢。

最佳答案

假设您使用 Capybara 来获取 has_selector?方法,您需要将结果包装在 Capybara.string(...) 中访问 has_selector?方法。

所以你的测试应该来自:

expect(subject).to have_selector("p:eq(1)")

到:
result = Capybara.string(subject)
expect(result).to have_selector("p:eq(1)")

文档: http://rdoc.info/gems/capybara/Capybara#string-class_method

关于ruby-on-rails - 在 Rails + RSpec 中对 String 对象使用 have_selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23094804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com