【发布时间】:2016-05-21 23:41:26
【问题描述】:
我是 ruby 和 sinatra 的新手。我在 config.ru 中有一个带有以下映射的 sinatra 应用程序
map "/xyz" do
run lambda { |env|
if env["PATH_INFO"] != "/"
A::B.call(env)
else
C::D.call(env.merge("PATH_INFO" => "/xyz/"))
end
}
end
我正在尝试编写一个测试来检查是否调用了正确的应用程序。
When I visit the URL "<url>"
And "<engine>" is used
Examples:
| url | engine |
| /xyz/ | C::D |
| /xyz/abc/ | A::B |
在步骤中
step ":engine is used" do |engine|
expect(engine.constantise).to receive(:call)
end
但是这一步失败了。有没有更好的方法来测试这个?我尝试对此进行调试并确认调用了 sinatra 映射和调用。
该页面还不存在。这就是为什么我尝试测试路由而不是响应。
提前致谢。
【问题讨论】:
-
你遇到了什么错误?
标签: ruby rspec sinatra cucumber