草庐IT

Controller测试

全部标签

ruby-on-rails - STI,一个 Controller

我是Rails的新手,我有点被这个设计问题困住了,这可能很容易解决,但我没有得到任何结果:我有两种不同的广告:亮点和特价。它们都具有相同的属性:标题、描述和一张图片(带有回形针)。它们也有相同类型的操作可应用于它们:索引、新建、编辑、创建、更新和销毁。我这样设置STI:广告模型:ad.rbclassAd讨价还价模型:bargain.rbclassBargain高亮模型:highlight.rbclassHighlight问题是我只希望有一个Controller(AdsController)来执行我所说的根据URL(比如www.foo.com/bargains[/...]或www.foo

ruby-on-rails - Ruby on Rails 复数( Controller )和单数(模型)约定 - 解释

根据RubyonRails惯例,Controller名称采用复数形式,而模型名称采用单数形式。示例:一个用户Controller,但是一个用户模型。railsgeneratecontrollerUsersrailsgeneratemodelUsername:stringemail:string现在打开迁移文件classCreateUsers这里的表名是复数(users)所以我的问题是-为什么表名是复数(用户),即使模型名称是单数(用户)? 最佳答案 RubyonRails遵循语言惯例。这意味着一个模型代表一个用户,而数据库表由许多用

ruby - 如何使用 minitest 运行所有测试?

我下载了一个项目的源代码,发现了一个错误并修复了它。现在我想运行测试以查明我是否损坏了任何东西。测试在minitestDSL中。如何同时运行它们?我搜索了适用的佣金任务等,但没有找到。 最佳答案 这是指向Rake::TestTask的链接.页面中有一个示例可以帮助您入门。我将发布另一个我现在正在使用的gem:require'rake/testtask'Rake::TestTask.newdo|t|t.pattern="spec/*_spec.rb"end如您所见,我假设我的文件都在/lib中,而我的规范在/spec中并命名为what

ruby-on-rails - 在哪里放置 Rails Controller 的 Ruby 辅助方法?

我有某些(或所有)Controller需要的一些Ruby方法。我尝试将它们放在/app/helpers/application_helper.rb中。我已经将其用于View中使用的方法。但是Controller看不到这些方法。我应该把它们放在另一个地方还是我需要以不同的方式访问这些辅助方法?使用最新的稳定版Rails。 最佳答案 您应该在ApplicationController中定义该方法。 关于ruby-on-rails-在哪里放置RailsController的Ruby辅助方法?,

ruby-on-rails - Rspec 3 如何测试 flash 消息

我想用rspec测试Controller的Action和flash消息的存在。行动:defcreateuser=Users::User.find_by_email(params[:email])ifuseruser.send_reset_password_instructionsflash[:success]="Resetpasswordinstructionshavebeensentto#{user.email}."elseflash[:alert]="Can'tfinduserwiththisemail:#{params[:email]}"endredirect_toroot_pa

ruby-on-rails - 在 Controller 中运行 rake 任务

我想在我的Controller中运行一个rake任务。有什么办法吗? 最佳答案 我同意ddfreynee的观点,但如果您知道自己需要什么,代码可以如下所示:require'rake'Rake::Task.clear#necessarytoavoidtasksbeingloadedseveraltimesindevmodeSample::Application.load_tasks#providingyourapplicationnameis'sample'classRakeController您可以改为在初始化程序中要求'rake'

ruby-on-rails - 如何测试 Rails/RSpec 中的异常引发?

有如下代码:defindex@car_types=car_brand.car_typesenddefcar_brandCarBrand.find(params[:car_brand_id])rescueActiveRecord::RecordNotFoundraiseErrors::CarBrandNotFound.newend我想通过RSpec测试它。我的代码是:it'raisesCarBrandNotFoundexception'doget:index,car_brand_id:0expect(response).toraise_error(Errors::CarBrandNotF

ruby-on-rails - Ruby 方法的测量和基准测试时间

我如何测量Ruby中方法和该方法中的各个语句所花费的时间。如果您看到下面的方法,我想测量该方法所花费的总时间以及数据库访问和redis访问所花费的时间。我不想在每条语句之前都写Benchmark.measure。ruby解释器是否为我们提供了执行此操作的任何钩子(Hook)?deffoo#codetoaccessdatabase#codetoaccessredis.end 最佳答案 最简单的方法:require'benchmark'deffootime=Benchmark.measure{codetotest}putstime.re

ruby-on-rails - 尝试从 Rails Controller 调用辅助方法时出现 NoMethodError

当我尝试从我的Controller类之一访问在我的帮助程序模块之一中定义的方法时,我收到了一个NoMethodError。我的Rails应用程序使用helper类方法和:all符号,如下所示:classApplicationController我的理解是,这应该使我的所有Controller类自动包含app/helpers目录中的所有帮助程序模块,因此将所有方法混合到Controller中。这是正确的吗?如果我在Controller中显式包含辅助模块,那么一切正常。 最佳答案 使用模板引擎中已经包含的辅助方法:Rails2:使用@t

推出 JetBrains Aqua:为测试自动化打造的强大 IDE初步了解

目录啥是Aqua? 视频介绍初体验​小伙伴可能遇到问题总结:啥是Aqua?        JetBrainsAqua是一款可以感知上下文的智能IDE,能够理解Java、Kotlin、Python、JavaScript、TypeScript和SQL等语言,并为每种语言提供智能编码辅助。详情链接JetBrainsAqua官网速达-下载         在Aqua中,我们融合了测试自动化工程师在日常工作中需要的一切,包括多语言IDE(支持JVM、Python和JavaScript等)、HTTP客户端、数据库管理功能、Docker支持、TMS客户端,以及一款用于UI自动化的新型强大Web检查器。 视频