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

前端之家收集整理的这篇文章主要介绍了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和/或黄瓜(不知道哪些,我只是不做这个部分在我的新项目,它的工作正常)

猜你在找的Ruby相关文章