我試圖從Sinatra 1.3.x升級到1.4.2。該規範運行良好,但黃瓜失敗:爲什麼Cucumber測試應用程序無法在1.4.x而不是1.3.x中訪問Sinatra的設置?
undefined local variable or method `settings' for #<RechargeWorld:0x007ffbd606ba60> (NameError)
的env.rb
的相關部分看起來是這樣的:
class RechargeWorld
include Capybara::DSL
include RSpec::Expectations
include RSpec::Matchers
def db
@db ||= CouchRest.database(settings.db)
end
end
一些這個代碼(注:我添加了db
法)所產生的cucumber-sintra,它在1.3.x下運行正常,但在1.4.x版本中失敗。黃瓜-sinatra的最新版本基本上產生相同的env.rb
。
該應用程序是available on Github。
1.3.x和1.4之間的設置哈希值是否會因此而發生任何變化?我做錯了嗎?
Github似乎正在關閉,所以我不能自己嘗試這個,但是你有沒有試過調用Capybara使用的'app'變量,'Capybara.app.db'? – iain 2013-04-09 13:47:05
不幸的是,這是行不通的。這會導致#(NoMethodError)':(但我會發佈一個可行的答案,隨時對其進行評論;-) –
awendt
2013-04-10 19:45:39