草庐IT

数据库测试指南

全部标签

ruby - 有没有一种干净的方法来测试 Rspec 中的 ActiveRecord 回调?

假设我有以下ActiveRecord类:classToastMitten是否有一种干净的方法来测试:brush_off_crumbs是否已设置为before_save回调?我所说的“干净”是指:“没有实际保存”,因为它很慢我不需要测试ActiveRecord是否正确处理before_save指令;我需要测试我是否正确地告诉它在保存之前要做什么。“没有通过未记录的方法进行黑客攻击”我找到了满足标准#1但不满足标准#2的方法:it"shouldcallhavebrush_off_crumbsasabefore_savecallback"do#undocumentedvoodoobefore

ruby-on-rails - 当多个应用程序在 Ruby 中共享同一个数据库时如何管理迁移?

我有一个Rails应用程序和一个Sinatra应用程序,共享同一个数据库。Sinatra应用程序使用ActiveRecord。我能否从每个应用程序中运行迁移,就好像它们在同一个应用程序中一样?这会导致任何问题吗?Rails应用程序中的schema.rb文件通过以下方式跟踪当前迁移ActiveRecord::Schema.define(:version=>20121108154656)do但是,Sinatra应用如何知道数据库的当前版本?Rails3.2.2,Ruby1.9.3。 最佳答案 schema_migrations表中的版本

ruby-on-rails - 基于数据库模型的动态 Rails 路由

所以我正在构建一个需要基于两种不同类型的路由的Rails站点我有一个语言模型和一个类别模型所以我需要能够转到语言路径/ruby以查看顶级ruby​​资源,还可以转到/books以查看所有语言的顶级书籍我试过这样的路线get'/:language',to:"top_voted#language"get'/:category',to:"top_voted#category"问题是逻辑无法弄清楚两者之间的区别,导致后端发生一些冲突这个我也试过Language.all.eachdo|language|get"#{language.name}",to:"top_voted#language",:

ruby - ruby 中的过程和数据抽象

我是Ruby新手。我正在学习ruby​​中的抽象原则。据我了解,过程抽象是对用户隐藏实现细节,或者只是专注于要点而忽略细节。我关心的是如何实现它1)是不是一个简单的函数调用就这样#functiontosortarray#@paramsarray[Array]tobesortdefmy_sort(array)returnarrayifarray.sizearray[i+1]array[i],array[i+1]=array[i+1],array[i]swapped=trueendendendarrayend然后这样调用sorted_array=my_sort([12,34,123,43,

ruby - Cucumber 测试无法启动,错误为 "Display socket is taken but lock file is missing.."

运行cucumber后bundleexeccucumberfeatures/emails.feature:20我遇到了错误Displaysocketistakenbutlockfileismissing-checktheHeadlesstroubleshootingguide(Headless::Exception)/Users/me/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/headless-2.2.0/lib/headless.rb:195:inensure_xvfb_is_running'/Users/me/.rbenv/ver

ruby-on-rails - watchr 与 rails 应用程序的自动测试

所以我最近在让自动测试在我的rails3应用程序中工作时遇到了很多问题。我没有继续摆弄它,希望它能正常工作,而是开始寻找替代方案。现在看来watchr是一个不错的选择。但我想问,使用其中一个比另一个有什么特别的优势吗?我能说的最明显的是watchr需要更多的设置。然而,在那之后它似乎“正常工作”。所以权衡对我来说似乎很值得,但还有哪些其他优点/缺点?此外,我不太熟悉什么是spork或它是如何工作的,但是可以将watchr与spork一起使用,让我获得在rails中运行得更快的测试的优势吗? 最佳答案 我最近遇到了自动测试的问题,因为

ruby-on-rails - Ruby 类评估,validates_inclusion_of 与动态数据

如果我有如下的ActiveRecord模型classFooself.allowed_typesdefself.allowed_types#somecodethatreturnsanenumerableendend这不起作用,因为在评估验证时尚未定义allowed_types方法。我能想到的所有修复基本上都是围绕将方法定义移到验证之上,以便在需要时可用。我明白这可能更像是一个编码风格问题(我希望我的所有验证都在模型顶部,方法在底部)但我觉得应该有某种解决方案,可能涉及初始模型加载的惰性评估?我想做的事有可能吗?我应该只在验证之上定义方法,还是有更好的验证解决方案来实现我想要的。

ruby-on-rails - 选择具有多个预选值的标签 - 在数据库中手动插入的值

我需要在select_tag中预先选择多个值。但我在表格空缺中“手动”添加空缺,如下所示:我的Controller:defcreate@hr_curriculum_generic=HrCurriculumGeneric.new(params[:hr_curriculum_generic])ifparams[:vacancy_ids].present?@vacancies_ids=params[:vacancy_ids]--我的表单:@vacancies_ids.eachdo|vacancy_id|#Armazenaosiddocurriculum,vagaedocargonatabel

ruby - 使用指南针安装 bootstrap sass

我正在尝试安装bootstrap-sass并收到以下错误。我试过旧版本的sass,但bundler一直在安装3.3.0。WARN:UnresolvedspecsduringGem::Specification.reset:sass(~>3.2)WARN:Clearingoutunresolvedspecs.Pleasereportabugifthiscausesproblems./Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.r

ruby-on-rails - 如何按照散列中的数字序列生成和填充缺失数据

我正在尝试创建一个函数来完成以下哈希中的小时序列。{name:"cardio",data:[["06:00",999],["09:00",154],["10:00",1059],["11:00",90]]}它应该在字段数据中创建所有缺失值["07:00",0],["08:00",0],["12:00",0],["13:00",0]...["23:00",0]预期结果:{name:"cardio",data:[["06:00",999],["07:00",0],["08:00",0],["09:00",154],["10:00",1059],["11:00",90]],["12:00",