gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:04:40 25 4
gpt4 key购买 nike

我正在使用 rspec、 cucumber 和 capybara ,我正在寻找一种方法来测试恶意用户无法破解表单然后发布到他/她没有权限的网址。我在 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!")

然而,在 capybara 中,似乎只能访问。我找不到办法做到这一点,我到处搜索。

任何帮助将非常感激,
谢谢

最佳答案

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

在您的 Gemfile 中:

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

更新:我认为您可以使用较新版本的 Rails 和/或 Cucumber 跳过对 env.rb 文件的更改(不确定是哪个,我只是不在我的较新项目中执行该部分,它工作正常)

关于ruby-on-rails - 如何在 Rails/Capybara/Cucumber 或 Rspec 中测试帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com