gpt4 book ai didi

ruby-on-rails - RSpec::Core::ExampleGroup::Nested_2 中的未定义方法 `it'

转载 作者:可可西里 更新时间:2023-11-01 16:28:40 24 4
gpt4 key购买 nike

当我尝试实现“Fakeweb”时遇到这个错误,我不明白这个问题。

场景:"用户填写所有信息后,系统将使用其中一个属性"fbid"进行验证,如果成功则只会创建一个新公司,否则该过程将失败。"

Failures:
1) Companies new company create with valid information correct facebook id validates facebook id
Failure/Error: it "should create a company" do
NoMethodError:
undefined method `it' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_3::Nested_1::Nested_1:0x00000102fb84e0>
# ./spec/requests/companies_spec.rb:40:in `block (5 levels) in <top (required)>'

companies_spec.rb

    describe "correct facebook id" do               
#validate fbid
it "validates facebook id" do
FakeWeb.register_uri(:head, "http://graph.facebook.com/examplecompany", :username => 'examplecompany')
Company.new(:url => "http://graph.facebook.com/examplecompany").fb_id_string.should eq('examplecompany')

it "should create a company" do
expect { click_button submit }.to change(Company, :count).by(1)
end

模型/公司.rb

def fb_id_string
uri = URI.parse(url)
response = Net::HTTP.start(uri.host, uri.port) { |http| http.request_head(uri.path) }
response["username"].to_str
end

结束

最佳答案

由于在 Google 上搜索 rspec nested it 没有任何结果,我想我应该详细说明一下@apneadiving 的评论。

虽然 rspec 允许 describe 及其同义词任意嵌套,而 it 在传递字符串参数时在结构上类似于 describe , it block 只能包含 mocks、expectations、应用程序代码和 vanilla Ruby。它不能包含 it 的其他调用,或者就此而言,beforeafterlet。它可以调用 subject,但这样做只会调用 subject 被定义为的 block ;它不会重新定义主题。

相反,模拟和期望不能直接在 describe 中表达。它们必须包含在 it 中。

关于ruby-on-rails - RSpec::Core::ExampleGroup::Nested_2 中的未定义方法 `it',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17807465/

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