我有一个项目,我在其中使用 RSpec 和 Capybara 进行单元测试。我已经完全清除了模型和 Controller 测试,它们顺利通过并处理了数据库前验证的繁重工作。
我现在正在测试用户体验和前端项目,想知道如何验证表单是否未提交。如果用户不匹配密码或其他一些错误数据,我有脚本来设置错误并阻止提交。
我知道我可以搜索错误文本,但有一种方法可以检查“提交”从未发生过,并且确信没有发生服务器访问。
我想要这样的东西:
it "should not sumbit if user name is less than 3 characters" do
visit /edit_account_settings(@user)
fill_in "username", :with => "fo"
click_button "SAVE"
# HOW DO I DO THIS?
expect( ... ).not_to submit_to_server
end
最佳答案
这不是您应该在集成测试中测试的内容。在集成测试中,您从最终用户的角度出发,因此您应该只测试用户实际可以看到的内容。如果用户看到表单未提交的唯一证据是错误消息,那么这就是您应该测试的内容。
关于ruby-on-rails - 使用 RSpec/Capybara 确定表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905609/