草庐IT

$设计规范

全部标签

ruby - 为依赖于环境变量的代码编写规范的最佳方法是什么?

我正在测试一些从环境变量中提取其配置的代码(在生产环境中由Heroku配置变量设置,对于本地开发我使用foreman)。使用RSpec测试此类代码的最佳方法是什么?我想到了这个:before:eachdoENV.stub(:[]).with("AWS_ACCESS_KEY_ID").and_return("asdf")ENV.stub(:[]).with("AWS_SECRET_ACCESS_KEY").and_return("secret")end如果您不需要测试环境变量的不同值,我想您可以改为在spec_helper中设置它们。 最佳答案

ruby-on-rails - Controller 规范未知关键字 : id

我有简单的Action表演defshow@field=Field.find_by(params[:id])end我想为它写规范require'spec_helper'RSpec.describeFieldsController,type::controllerdolet(:field){create(:field)}it'shouldshowfield'doget:show,id:fieldexpect(response.status).toeq(200)endend但是我有一个错误Failure/Error:get:show,id:fieldArgumentError:unknown

ruby-on-rails - 如何在请求规范中 stub ApplicationController 方法

我需要在Rspec/capybara请求规范中stubcurrent_user方法的响应。该方法在ApplicationController中定义并使用helper_method。该方法应该只返回一个用户ID。在测试中,我希望此方法每次都返回相同的用户ID。或者,我可以通过在规范中设置session[:user_id]来解决我的问题(这是current_user返回的内容)...但这似乎不是要么工作。这两种可能吗?编辑:这是我得到的(它不工作。它只是运行正常的current_user方法)。require'spec_helper'describe"Login"dobefore(:eac

ruby-on-rails - 从 Rails 控制台设计密码重置

在运行应用程序时,如何通过电子邮件地址选择用户,然后在railsconsoleforDevise中手动设置密码?此外,我应该去哪里查看文档以涵盖有关在使用Devise时操纵帐户的更多详细信息? 最佳答案 现代设计允许更简单的语法,无需设置确认字段user.password=new_password;user.save#oruser.update(password:new_password) 关于ruby-on-rails-从Rails控制台设计密码重置,我们在StackOverflow上

ruby-on-rails - 从 Ruby 控制台创建一个设计用户

关于如何使用ruby​​控制台设计创建和保存新用户对象的任何想法?当我试图保存它时,我总是出错。我想我遗漏了什么,但找不到任何相关信息。 最佳答案 如果需要,您可以在保存方法中添加false以跳过验证。User.new({:email=>"guy@gmail.com",:roles=>["admin"],:password=>"111111",:password_confirmation=>"111111"}).save(false)否则我会这样做User.create!({:email=>"guy@gmail.com",:role

ruby - 在不创建新字符串的情况下在 Ruby 中修剪字符串的规范方法是什么?

这就是我现在所拥有的——对于它正在做的工作来说看起来太冗长了。@title=tokens[Title].strip!||tokens[Title]if!tokens[Title].nil?假设tokens是一个CSV行拆分得到的数组。现在像strip一样的功能!咀嚼!等。如果字符串未被修改,则全部返回nil"abc".strip!#=>nil"abc".strip!#=>"abc"如果它包含额外的前导或尾随空格而不创建副本,Ruby怎么说修剪它?如果我想做tokens[Title].chomp!.strip!会变得更丑 最佳答案 我

ruby - Gem::Specification.reset 期间 Unresolved 规范:

启动Guard时,我得到以下输出:$guardWARN:UnresolvedspecsduringGem::Specification.reset:lumberjack(>=1.0.2)ffi(>=0.5.0)WARN:Clearingoutunresolvedspecs.Pleasereportabugifthiscausesproblems.这是什么意思,我该如何解决?Guardfile的内容:guard'livereload'dowatch(%r{.+\.(css|js|html)$})endguard'sass',:input=>'css',:style=>:compresse

ruby-on-rails - Rails 中的 OO 设计 : Where to put stuff

我真的很喜欢Rails(尽管我通常不太喜欢RESTless),而且我喜欢Ruby非常面向对象。尽管如此,创建庞大的ActiveRecord子类和庞大的Controller的趋势是很自然的(即使您确实为每个资源使用了一个Controller)。如果你要创建更深层次的对象世界,你会将类(和模块,我想)放在哪里?我问的是View(在助手本身中?)、Controller和模型。lib没问题,我找到了somesolutionstogetittoreloadinadevenvironment,但我想知道是否有更好的方法来做这些事情。我真的只是担心类(class)变得太大。另外,引擎怎么样?它们是如

ruby - 如何在 RSpec 中运行单个测试/规范文件?

我希望能够运行单个规范文件的测试——例如,针对我正在编辑的一个文件。rakespec执行所有规范。我的项目不是Rails项目,所以rakespec:doc不起作用。不知道这是否重要,但这是我的目录结构。./Rakefile./lib./lib/cushion.rb./lib/cushion./lib/cushion/doc.rb./lib/cushion/db.rb./spec./spec/spec.opts./spec/spec_helper.rb./spec/db_spec.rb 最佳答案 或者您可以跳过rake并使用“rspe

javascript - 在 ES6 中什么是新规范, "block-level function declaration"是什么意思?

我正在尝试学习es6兼容性表Here.在bindings部分它说“block级函数声明?”。除了官方spec,我找不到任何博客或文档在那个词的组合上。问题:“block级函数声明”指的是什么? 最佳答案 示例kangax正在测试:alert(function(){'usestrict';functionf(){return1;}{functionf(){return2;}}returnf()===1;}());这意味着函数“提升”的行为方式与let相同(与var相比)。在ES5中,大括号是“装饰”,除非出现在for、if、try等几