ruby-on-rails – 如何测试Rails / Capybara / Cucumber或Rspec中的帖子

我使用的是rspec,cucumber和capybara,我正在寻找一种方法来测试恶意用户不能抄袭表单,然后发布到他/她没有权限的URL.我在cancan中设置了我的权限,以便这个“应该”工作,但是,我可以测试的唯一方法是自己抄袭一个表单.

如何自动化这种测试?有了webrat,我可以用rspec的单元测试来做这件事

put :update,:user_id => @user.id,:id => @user_achievement.id
response.should contain("Error,you don't have permission to access that!")

然而,在水……………….我找不到办法去做,我已经到了任何地方.

任何帮助将不胜感激,
谢谢

解决方法

我想你可以通过机架测试来做到这一点
https://github.com/brynary/rack-test

在你的宝石文件中:

gem 'rack-test'

在你的env.rb文件

module CapybaraApp
  def app; Capybara.app; end
end
World(CapybaraApp)
World(Rack::Test::Methods)

某个地方有定义:

When /^I send a POST request to "([^"]*)"$/ do |path|
  post path
end

我学到的大部分内容来自于这里:http://www.anthonyeden.com/2010/11/testing-rest-apis-with-cucumber-and-rack-test

更新:我想你可以跳过你的env.rb文件的更新版本的更新版本的Rails和/或黄瓜(不知道哪些,我只是不做这个部分在我的新项目,它的工作正常)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...