另外一个Rspec和Factory Girl的用法示例
I think you all know that, when using fixtures in your test, you keep switching between files to see what fixtures there are, always struggling with dependencies and conflicts.
There are a couple of helpers that solve this, but this is the best one I came across until know: Factory Girl
As the names says, it provides some kind of factory for your objects and instances.
The following snippet illustrates the definition of such a factory:
# define an incremental username
Factory.sequence :user do |n|
"user#{n}"
end
# define a user factory
Factory.define :user do |u|
u.admin false
u.username { Factory.next(:user) } # lazy loaded
end
# define a project factory with associated user
Factory.define :project do |p|
p.title 'myproject'
p.creator {|a| a.association(:user) } # again lazy loaded
end
Now, this factory can be used in your tests:
it "should do something" do
Factory.create(:user) # creates a user
Factory(:user) # creates another user (note the shortcut)
@u = Factory.build(:user, :username => 'customuser') # only build, no save
Factory.create (:project, :creator => @u)
end
I think you get the basic idea behind it, it’s actually pretty clean and makes tests a lot more readable without looking at fixtures.
Note: At the time of this writing, the attribute name does not work since there is a conflict (that will be resolved soon). Instead you have to use:
Factory.define :project do |p|
p.add_attribute :name, "myname"
end
分享到:
相关推荐
基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip ...
jquery-datatables-rails, 用于 Rails的jquery数据表 gem jquery-datatables-rails 这个 gem 为 jQuery DataTables插件提供了方便,以便与 Rails 资产pipleine结合使用。 它提供所有基本的datatable文件,以及一些...
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
turbo-sprockets-rails3, 加速你的Rails 3资产 用于 Rails 3.2.x的涡轮链轮 通过只根据源文件的哈希来重新编译已经更改的资产,从而加快 Rails 3 rake assets:precompile的速度只编译一次以生成指纹和非打印的资产...
"Angle-3.4-rails"是一个专门针对Rails框架的项目,其包含了"backend-rails"和"backend-rails-seed"两个关键部分,旨在为开发者提供一个强大的后端开发环境和数据初始化工具。 一、Rails框架介绍 Rails是由David ...
projectile-rails, 基于弹丸的Rails 模式 弹 Rails 概要弹 Rails 是在 GNU Emacs中使用 Ruby on Rails 应用程序和引擎的次要模式。 在内部,它是基于弹 。这意味着你可以在 greping ( 或者 acking ) 文件。运行测试...
《InfluxDB与Rails集成深度解析——以influxdb-rails源码为例》 InfluxDB,作为一款专为时间序列数据设计的高性能数据库,被广泛应用于监控、物联网、大数据分析等领域。Rails,作为Ruby on Rails框架的核心部分,...
在这个案例中,我们看到`jquery-ui-rails-4.2.1.gem`,这是该gem的一个特定版本。这个gem负责将jQuery UI的库文件打包并整合到Rails的asset pipeline中,使得在Rails项目中使用jQuery UI变得简单。 要使用`jquery-...
`cljs-rails` 就是这样一个工具,它为Rails应用提供了Clojurescript的集成,类似于Webpack-Rails对JavaScript的处理方式。 Webpack-Rails是Webpack在Rails环境中的集成,Webpack是一款强大的模块打包工具,它允许...
jquery-fileupload-rails, 用于 Rails的jQuery文件上传集成 Rails 文件上传jQuery-File-Plugin 是一个文件上传插件,由的Tschan 。 jQuery文件上传功能多文件选择。drag&拖放支持。进度栏和jQuery预览图像。 支持...
jquery-ui-rails 这个gem为Rails打包了jQuery UI资产(JavaScript,样式表和图像),因此您不必再通过下载自定义软件包。 请参阅以查看哪些版本的jquery-ui-rails捆绑了哪些版本的jQuery UI。 警告:此gem与3.0.0...
minitest-rails, Rails的Minitest集成 minitestRails 5的Minitest集成 安装gem install minitest-rails这将安装以下宝石:minitest配置创建一个新的Rail
grape-swagger-rails, Swagger UI作为葡萄 Swagger gem的Rails 引擎 GrapeSwaggerRails Swagger UI作为葡萄 Swagger gem的Rails 引擎。安装将此行添加到你的应用程序的Gemfile中:gem 'grape-swagger-rails'
Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zipRuby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zipRuby_on_...
webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。... web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中的工具。它很乐
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
这个简单的插件使您能够调用to_xls到Rails的数组集合。 数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem # gem "to_xls-rails", :git => ...
基金会::铁路 Foundation :: Rails是一颗宝石,可以在即将到来的Rails项目中非常轻松地使用Foundation。安装将这些行添加到应用程序的Gemfile中: gem ' foundation-rails 'gem ' autoprefixer-rails ' 然后执行: ...
jquery-validation-rails, 对 Rails 资产管道的jQuery验证 :: 验证:: rails针对 Rails 资产管道的验证 。安装这里 gem将以下行添加到项目的Gemfile 中:gem 'jquery-validation-rails'在你的终端中运行以下命令:cd...
扩展专注于执行 Rails 最佳实践和编码约定。 注意:此存储库管理 rubocop-rails gem (>= 2.0.0)。 rubocop-rails gem (<= 1.5.0) 已重命名为 gem。 安装 只需安装rubocop-rails gem gem install rubocop-rails...