gpt4 book ai didi

rspec - 使用 Modular Sinatra 应用程序设置 Cucumber、Capybara 和 RSpec

转载 作者:行者123 更新时间:2023-12-04 10:05:34 27 4
gpt4 key购买 nike

这是我的config.ru

$:.unshift File.join(File.expand_path(File.dirname(__FILE__)), 'config')
require 'boot'

Routes = Rack::Mount::RouteSet.new do |set|
set.add_route App::Users, { :path_info => %r{^/users*} }, {}, :users
set.add_route App::Dashboard, { :path_info => %r{^/$} }, {}, :dashboard
set.add_route Rack::File.new(File.dirname(__FILE__) + "/public"), { :path_info => %r{^/*} }, {}, :public
end

run Routes
boot.rb
require 'bundler'
Bundler.setup
Bundler.require(:default)
Mongoid.load!(File.join(File.dirname(__FILE__), '/mongoid.yml'))
%w(sinatra json yaml rack/mount rack/contrib).each {|l| require l }
Dir["./lib/**/*.rb"].each { |f| require f }

还有我的 lib包含应用程序和模型。

如何让 Cucumber 看到我的申请:

这是 cucumber env.rb
require 'capybara'
require 'capybara/cucumber'
require 'rspec'

World do
Capybara.app = App
include Capybara
include RSpec::Expectations
include RSpec::Matchers
end

我想要的是让 env.rb 读取我的 config.ru 并让我的 cucumber 准备好进行测试。

最佳答案

在@amrnt 的解决方案中,您可以替换该行

Capybara.app = eval("Rack::Builder.new {( " + File.read(File.dirname(__FILE__) + '/../../config.ru') + "\n )}")

有了这个:
Capybara.app, _ = Rack::Builder.parse_file(File.expand_path('../../config.ru', __FILE__))

或者
Capybara.app = Rack::Builder.parse_file(File.expand_path('../../config.ru', __FILE__)).first    

关于rspec - 使用 Modular Sinatra 应用程序设置 Cucumber、Capybara 和 RSpec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001414/

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