Tag: factory bot

如何模拟RSpec的login?

我已经和Rails玩了几年了,并且制作了一些正在生产的可移动应用程序。 我一直避免做任何testing,我决定纠正这个问题。 我正在尝试编写一些应用程序的testing,这些应用程序是为已经运行但正在进行不断修订的工作而编写的。 我担心任何更改都会破坏事情,所以我想要进行一些testing并运行。 我已经阅读了RSpec的书,看了一些截屏,但是很难开始(它实际上是你实际完成之后才明白的东西)。 我试图写我的ReportsController应该是一个简单的testing。 我的应用程序的问题是,几乎整个东西都位于身份validation层后面。 如果你没有login,什么都不起作用,所以我必须模拟一个login,甚至可以发出一个简单的获取请求(虽然我想我应该写一些testing,以确保没有login的任何工作 – 我会得到以后)。 我build立了RSpec,Capybara,FactoryGirl和Guard的testing环境(不知道使用Railscasts的build议使用哪些工具)。 到目前为止我写testing的方法是像FactoryGirl那样创build一个用户, FactoryGirl.define do sequence(:email) {|n| "user#{n}@example.com"} sequence(:login) {|n| "user#{n}"} factory :user do email {FactoryGirl.generate :email} login {FactoryGirl.generate :login} password "abc" admin false first_name "Bob" last_name "Bobson" end end 然后像我这样写我的testing; require 'spec_helper' describe ReportsController do describe "GET 'index'" do it "should be successful" do user […]

在命名空间模型上使用带Rspec的factory_girl_rails

我有一个networking服务,为多个不同的客户提供广告。 广告的结构因客户而异,因此,我使用客户名称的模型和控制器使用名称空间来区分广告。 从高层来看,看起来像这样: 'app/models/client1/ad.rb' class Client1::Ad < ActiveRecord::Base attr_accessible :title, :description end 'app/models/client2/ad.rb' class Client2::Ad < ActiveRecord::Base attr_accessible :title, :description, :source end 实际上,这些模型更复杂,有联系,但这不是重点。 我正在使用rspec-rails 2.4.0和factory_girl_rails 1.0.1编写一些unit testing,而我所有的工厂都很好。 但是,我无法为名称空间模型定义工厂。 我试过类似的东西: Factory.define :client1_ad, :class => Client1::Ad do |ad| ad.title "software tester" ad.description "Immediate opening" end 和 Factory.define :client2_ad, :class => Client2::Ad do |ad| ad.title "software tester" ad.description […]

如何在Factory Girl中定义数组/散列?

我正在尝试编写一个testing,模拟Dropbox的REST服务中的一些返回值,这个服务使用嵌套哈希将数据返回给数组。 我无法弄清楚如何编写我的工厂,因为返回结果是一个有一个内部的数组。 这里会有什么? Factory.define :dropbox_hash do ?? end Dropbox的数据如下所示: ["/home", {"revision"=>48, "rev"=>"30054214dc", "thumb_exists"=>false, "bytes"=>0, "modified"=>"Thu, 29 Dec 2011 01:53:26 +0000", "path"=>"/Home", "is_dir"=>true, "icon"=>"folder_app", "root"=>"app_folder", "size"=>"0 bytes"}] 而且我想在我的RSpec中使用这样的工厂调用: Factory.create(:dropbox_hash)