2

在我正在处理的 Rails 应用程序中,我有一个页面,当未填充字段并提交表单时,该页面应显示错误消息。

现场的客户端验证是使用 jQuery 完成的,当我手动测试它时,它可以在浏览器中正常工作

当用户未输入字段的数据时,将完全停止提交表单。

我有什么选择为此编写测试

  1. 我查看了 Jasmine,但当我想测试 javascript 函数本身时它似乎更有用,对于测试页面上的事件是否正确触发没有帮助。(如果我错了,请告诉我)

  2. 我查看了 rspec 并写了一个这样的测试

    require 'spec_helper'
    describe 'Sample Test Page' do      
    
       it 'should show error when Some Field is not specified' do
         visit  '/sample_page'
         click_button "Submit"  
         page.should have_content 'You forgot to Enter details in Some Field'
      end 
    end
    

但这里发生的是表单在没有验证触发的情况下被提交并且我得到一个错误(因为应用程序为空白值抛出了一个错误)

我最好的选择是什么?是否有其他工具可以帮助我在 Rails 哲学中对此进行测试?

4

1 回答 1

2

如果您需要在集成测试中测试 JavaScript,则需要明确指定它以选择支持 JavaScript 的 Web 驱动程序。

在您使用 Webrat 的情况下,它速度很快但不支持 JS,因此您的测试失败了。

Javascript 的默认 Web 驱动程序是 Selenium。要启用它,只需更改此行

describe 'Sample Test Page' do 

describe 'Sample Test Page', js: true do

然后这个块下的所有测试都将在 Selenium 上运行。你会看到一个真正的浏览器弹出来运行你的测试。

于 2013-04-28T06:08:58.900 回答