草庐IT

rack-test

全部标签

ruby - 如何在 Ruby 中遍历内存中的 zip 文件

我正在编写一个单元测试,其中一个正在返回一个zip文件,我想检查这个zip文件的内容,从中获取一些值,并将这些值传递给下一个测试。我正在使用机架测试,所以我知道我的zip文件的内容在last_response.body中。我查看了RubyZip的文档但它似乎总是期待一个文件。由于我正在运行单元测试,因此我更愿意在内存中完成所有操作,以免测试zip文件污染任何文件夹,如果可能的话。 最佳答案 马特的回答完全正确。此处更新为新的API:Zip::InputStream.open(StringIO.new(input))do|io|whi

ruby - 如何使用( ruby ) Rack 中间件组件设置 cookie?

我正在为需要有条件地设置cookie的Rails应用编写Rack中间件组件。我目前正在尝试设置cookie。通过谷歌搜索,这似乎应该可行:classRackAppdefinitialize(app)@app=appenddefcall(env)@status,@headers,@response=@app.call(env)@response.set_cookie("foo",{:value=>"bar",:path=>"/",:expires=>Time.now+24*60*60})[@status,@headers,@response]endend它不会给出错误,但也不会设置coo

ruby-on-rails - 为什么要测试:units and test:functionals insist on running in development environment?

我正在尝试测试一些特定于环境的设置(特定于中间件,但这似乎无关紧要),但我无法让测试在正确的环境中运行。症状:如果我运行rubytest/unit/my_test.rb,一切都很好,因为它做的第一件事是需要test/test_helper.rb,这会设置环境"test"然后加载Rails环境。如果我运行raketest,第一批(功能)运行良好,但第二批(单元)失败。失败是ENV['RAILS_ENV]以某种方式在批处理之间未设置,然后config/environment.rb看到没有设置并使用默认值"development“。环境在config/environment.rb的开头和该文

ruby - gemspec 文件中的 `files` 、 `executables` 、 `test_files` 和 `require_paths` 是什么?

我不清楚.gemspec文件中的某些规范在做什么。具体来说,spec.files=`gitls-files-z`.split("\x0")spec.executables=spec.files.grep(%r{^bin/}){|f|File.basename(f)}spec.test_files=spec.files.grep(%r{^(test|spec|features)/})spec.require_paths=["lib"]谁能解释一下这些与RubyGem的功能有何关系以及为什么需要它们? 最佳答案 executables:

ruby-on-rails - rails 2 : test 'link_to' and other view helpers from the rails console?

在Rails2中,我经常使用控制台,并且想知道使用它测试View助手(例如“link_to”或“url_for”)的最佳方法是什么。执行此操作的最佳方法是什么? 最佳答案 您可以将您的includeActionView::Helpers::UrlHelper添加到~/.irbrc以在您启动控制台时自动加载它。 关于ruby-on-rails-rails2:test'link_to'andotherviewhelpersfromtherailsconsole?,我们在StackOverfl

ruby-on-rails - rails : How to test if an attribute of a class object is required in the model policy?

简单地说,我有一个模型用户,其中包含名称、电子邮件和评论作为属性。validates_presence_of:namevalidates_presence_of:email所以“姓名”和“电子邮件”是必需的,但不是“评论”。my_user=User.new我想找到一种方法来测试像my_user.name.required?或User.name.required?类似的东西。我的目标是创建一个表单,并根据该项目是否设置为“validates_presence_of”,将特定类动态添加到表单项目span或td我试图搜索它,但没有找到任何相关信息。有没有简单的方法可以做到这一点?谢谢

ruby - 通过 Rack::Auth::Basic 有选择地允许某些 url

我已经建立了一个我希望得到最低限度安全保护的博客(即,我只是想将我不认识的随机人员拒之门外,我并没有尝试实现类似NSA的安全措施)。我正在使用toto使用Rack::Auth::Basic来“保护”站点。我想通过index.xml以便博客读者能够在不处理密码的情况下阅读提要(是的,我知道这是我的“安全性”中的一个大漏洞).如何让Rack::Auth::Basic通过这个url?这就是我向网站添加基本身份验证的方式:useRack::Auth::Basic,"blog"do|username,password|[username,password]==['generic','stupid

ruby - 如何使用 NGINX 部署 Ruby Rack 应用程序

我想用NGINX部署一个简单的RubyRack服务。我在Internet上阅读了各种内容,但都没有足够的帮助。假设我有这个(实际上它有点复杂,但仍然require'rack'classHelloWorlddefcall(env)[200,{"Content-Type"=>"text/plain"},["Helloworld!"]]endendRack::Handler::Mongrel.runHelloWorld,Port:9292我想知道用NGINX部署它的最佳方式是什么。也许是FCGI或其他东西? 最佳答案 这是您使用unico

ruby - 如何在 Heroku 上使用 Ruby Rack 为静态站点设置 URL

我的网站是here.它曾经是一个Django驱动的博客。但是我不再更新它所以我只是想把它变成一个静态的HTML站点。我得到了它并使用RubyRack将它移到了Heroku。但是每个URL都解析为主页。这是因为我的config.ru文件:useRack::Static,:urls=>["/media/images","/media/js","/media/css"],:root=>"public"runlambda{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=86400'},File.op

ruby - Sinatra/1.4.3 使用 Rack::Session::Cookie 警告

我的配置代码require'sinatra'#set:environment,:productionenable:sessionsenable:loggingsetrun:truecasewhenproduction?setport:8081whendevelopment?require'sinatra/reloader'require'better_errors'useBetterErrors::MiddlewareBetterErrors.application_root=__dir__enduseRack::Session::Cookie,key:'N&wedhSDF',doma