`
cvu
  • 浏览: 108968 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

rspec+selenium无缝结合的方案有没有?

    博客分类:
  • ruby
阅读更多
rspec和selenium都很不错,有没有两方面结合的很无缝的东西?

1、单纯用selenium
open '/admin/users'
assert_text "All Users"
click "link=New User"
wait_for_text_present "Login Fields"
type "user[login]", "cvu"
submit

只有客户端测试

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)。

不知道这样的东西目前有没有,很期待。
分享到:
评论
1 楼 hideto 2007-07-05  
得把不同级别的测试分清吧,你这样岂不是把不同职责的测试弄混淆了?

我觉得利用Rails内置的model单元测试+Selenium集成测试足矣

有时间我也来做个Rails测试评估

相关推荐

Global site tag (gtag.js) - Google Analytics