我使用的是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
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和/或黄瓜(不知道哪些,我只是不做这个部分在我的新项目,它的工作正常)