У меня есть приложение Sinatra и необходимо проверить мое приложение.уровень стека слишком глубокий (SystemStackError)
функции/поддержка/env.rb:
require_relative "../../application"
require "capybara"
require "capybara/cucumber"
require "rspec"
World do
Capybara.app = Application
include Capybara::DSL
include RSpec::Matchers
end
функции/one.feature:
Feature: Test homepage
In order to make sure people can open my site
I want to check it opened
Scenario: Opening first page
Given I have opened homepage
Then I should see site header
Попробуй:
cucumber features\one.feature
Результат:
Feature: Test homepage
In order to make sure people can open my site
I want to check it opened
Scenario: Opening first page # features\one.feature:5
Given I have opened homepage # features\one.feature:6
Then I should see site header # features\one.feature:7
1 scenario (1 undefined)
2 steps (2 undefined)
0m0.006s
You can implement step definitions for undefined steps with these snippets:
Given /^I have opened homepage$/ do
pending # express the regexp above with the code you wish you had
end
Then /^I should see site header$/ do
pending # express the regexp above with the code you wish you had
end
Ну, я создал функции/step_definitions/agenda_steps.rb:
Given /^I have opened homepage$/ do
pending # express the regexp above with the code you wish you had
end
Then /^I should see site header$/ do
pending # express the regexp above with the code you wish you had
end
Попробуй:
cucumber features\one.feature
Результат:
Feature: Test homepage
In order to make sure people can open my site
I want to check it opened
Scenario: Opening first page # features\one.feature:5
Given I have opened homepage # features/step_definitions/agenda_steps.rb:1
C:/Ruby193/bin/cucumber:19: stack level too deep (SystemStackError)
Почему и как я могу это исправить?
Обновлено: проблема, если я исчез переписать мой env.rb так:
require_relative "../../application"
require "capybara"
require "capybara/cucumber"
require "rspec"
Capybara.app = Application
#World do
# Capybara.app = Application
#
# include Capybara::DSL
# include RSpec::Matchers
#end
Вы можете оставить Gemfile.lock также и тем более какие версии огурца, водосвинки и RSpec вы используете – Dan
я разместил мои Gemfile.lock здесь: http://pastebin.com/8Ni5MSdj – demas
@Jacob, Rspec является для утверждений, в то время как Capybara просто разговаривает с веб-драйвером. С учетом сказанного вам определенно нужны как Rspec & Capybara (и, вероятно, Selenium тоже) –