我的项目的部分开发已经完成。我们的公司要求我为开发的代码编写黄瓜测试用例以及今后的发展。路由文件有admin和hosts两个子域。设计也是被使用。
现在我安装了cucumber并编写了第一个场景第一个故事,当非注册用户登陆主页时,进入一个有效的电子邮件,被重定向到下一页…页面没有密码字段。
Scenario: Non registered user lands on beta home page.
Given: I am on the homepage
When: I enter valid email with "bahubalian...@gmail.com".
Then: I should be redirected to request invitation page.
问题是在我的路由文件,我有,
constraints :subdomain => ADMIN_SUBDOMAIN do
....
root :to => admin#index
end
constraints :subdomain => HOST do
...
root :to => home#index.
end
现在我如何指定路径。Rb文件查找root_path特定的子域。在子域约束之外没有写入root_path。这是我第一次参加考试。我真的很喜欢这个。任何帮助都是非常感谢的。
我刚从别人那里得知这可以用水豚来实现。
结果很简单。Capybara提供了一个default_host方法。所以我只需要提到,
When I visit subomain sub
然后webstep
Given /^I visit subdomain (.*)$/ do |site_domain|
site_domain = "http://sub.example.com" if site_domain == "admin"
Capybara.default_host = site_domain
visit "/"
end
更新:
default_host不应该被使用,因为它没有在文档中提到。在visit.
中使用绝对路径。Given /^I visit subdomain (.*)$/ do |site_domain|
site_domain = "http://sub.example.com" if site_domain == "admin"
visit site_domain
end