Неопределенный метод `it'в RSpec::Core::ExampleGroup::Nested_2

У меня есть эта ошибка, когда я пытался реализовать "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

модель /company.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    

конец

1 ответ

Решение

Так как делает поиск Google для rspec nested it ничего не дает, я подумал, что немного уточню комментарий @apneadiving.

Хотя rspec позволяет describe и его синонимы должны быть вложены произвольно и в то время как it похож на describe в его структуре, когда передается строковый аргумент, it Блок может содержать только макеты, ожидания, код приложения и ванильный Ruby. Он не может содержать другие вызовы it или, в этом отношении, before, after или же let, Это может вызвать subject, но при этом просто вызывается блок, в котором задана тема; это не переопределит тему.

И наоборот, насмешки и ожидания не могут быть выражены непосредственно в describe, Они должны содержаться внутри it,

Другие вопросы по тегам