And*_*rej 12 rspec ruby-on-rails cucumber capybara
我正在使用rspec,黄瓜和水豚,我正在寻找一种方法来测试恶意用户无法破解表单然后发布到他/她没有权限的网址.我在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!")
Run Code Online (Sandbox Code Playgroud)
然而,在水豚中,访问只是看起来似乎.我找不到办法做到这一点,我已经google了无处不在.
任何帮助将不胜感激,谢谢
我认为你可以用机架测试https://github.com/brynary/rack-test来做到这一点
在你的Gemfile中:
gem 'rack-test'
Run Code Online (Sandbox Code Playgroud)
在你的env.rb文件中
module CapybaraApp
def app; Capybara.app; end
end
World(CapybaraApp)
World(Rack::Test::Methods)
Run Code Online (Sandbox Code Playgroud)
步骤定义:
When /^I send a POST request to "([^"]*)"$/ do |path|
post path
end
Run Code Online (Sandbox Code Playgroud)
我学到的大部分内容来自这里:http://www.anthonyeden.com/2010/11/testing-rest-apis-with-cucumber-and-rack-test
更新:我认为您可以使用较新版本的Rails和/或Cucumber跳过对env.rb文件的更改(不确定哪个,我只是不在我的新项目上做那部分而且工作正常)
| 归档时间: |
|
| 查看次数: |
9477 次 |
| 最近记录: |