rspec和selenium都很不错,有没有两方面结合的很无缝的东西?
1、单纯用selenium
[code]open '/admin/users'
assert_text "All Users"
click "link=New User"
wait_for_text_present "Login Fields"
type "user[login]", "cvu"
submit[/code]
只有客户端测试
2、比较难看的结合
其实还是只有客户端测试。
3、我希望代码可以这样简单和直观:
既可以通过selenium做浏览器里的测试(open '/admin/users'),又可以通过rspec看server端的反应(response.should redirect_to...),还可以访问测试数据库看里面的数据(User.find(1).should_not be_nil)。
不知道这样的东西目前有没有,很期待。
1、单纯用selenium
[code]open '/admin/users'
assert_text "All Users"
click "link=New User"
wait_for_text_present "Login Fields"
type "user[login]", "cvu"
submit[/code]
只有客户端测试
2、比较难看的结合
context "Test create user" do
setup do
@sel = Selenium::SeleneseInterpreter.new("localhost", 4444,
"*firefox", "http://localhost:3000", 5000)
@sel.start
end
specify "should create a user when given valid user information" do
@sel.open_and_wait "http://localhost:3000/admin/users"
@sel.assert_text "All Users"
@sel.click_and_wait "link=New User"
@sel.type "user[login]", "cvu"
@sel.submit
end
teardown do
@sel.stop
end
end
其实还是只有客户端测试。
3、我希望代码可以这样简单和直观:
context "Test create user" do
specify "should create a user when given valid user information" do
open '/admin/users'
page.should have_text("All Users")
click 'link=New User'
fill {:users=>{:login=>'cvu', :firstname=>'Forrest', :lastname=>'Cao'}}
submit
response.should redirect_to('/admin/users')
page.should have_text("cvu")
User.find_by_login("cvu").should_not be_nil
end
end
既可以通过selenium做浏览器里的测试(open '/admin/users'),又可以通过rspec看server端的反应(response.should redirect_to...),还可以访问测试数据库看里面的数据(User.find(1).should_not be_nil)。
不知道这样的东西目前有没有,很期待。