小编Jus*_*tin的帖子

NSClassFromString()vs classNamed:(NSString*)

根据我的阅读,似乎有两种方法可以从类名中获取对象.使用NSClassFromString()NSBundle's 之间有什么区别classNamed:(NSString *)

cocoa dynamic objective-c

6
推荐指数
1
解决办法
992
查看次数

与Spork Discrepancy的工厂女孩​​协会

我正在尝试使用Spork将Factory Girl用于RSpec.每当我在没有spork的情况下运行测试时,一切都会通过,但是当我使用Spork运行它时,所有试图创建依赖于另一个工厂的工厂实例的测试都会失败.例如:

3) Invitation has a correctly formed body
   Failure/Error: request = FactoryGirl.create(:request, ....)
   NoMethodError:
     undefined method `user=' for #<Request:0x007f86b6a87890>
Run Code Online (Sandbox Code Playgroud)

我的factories.rb代码看起来大致如此

FactoryGirl.define do
  factory :user do
    sequence(:first_name) { |n| "first_name#{n}" }
    sequence(:last_name) { |n| "last_name#{n}" }
  end

  factory :request do
    association :user, :factory => :user, :is_walker => false
  end
end
Run Code Online (Sandbox Code Playgroud)

我的代码似乎只有在存在关联时才会中断,然后它会尝试在上面调用setter :user.为什么会发生这种情况?

这是我正在使用的版本

gem 'rails', '3.0.7'
gem 'rspec-rails', '2.6.1'
gem 'spork', '0.9.0.rc5'
gem 'factory_girl_rails', '1.0'
Run Code Online (Sandbox Code Playgroud)

rspec spork ruby-on-rails-3 factory-bot

6
推荐指数
2
解决办法
1083
查看次数

Railstutorial:db:populate与工厂女孩

在railsstutorial中,为什么作者选择使用它(清单10.25):http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users

namespace :db do
  desc "Fill database with sample data"
  task :populate => :environment do
    Rake::Task['db:reset'].invoke
    User.create!(:name => "Example User",
                 :email => "example@railstutorial.org",
                 :password => "foobar",
                 :password_confirmation => "foobar")
    99.times do |n|
      name  = Faker::Name.name
      email = "example-#{n+1}@railstutorial.org"
      password  = "password"
      User.create!(:name => name,
                   :email => email,
                   :password => password,
                   :password_confirmation => password)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

使用假用户填充数据库,以及(清单7.16) http://ruby.railstutorial.org/chapters/modeling-and-viewing-users-two

Factory.define :user do |user|
  user.name                  "Michael Hartl"
  user.email                 "mhartl@example.com"
  user.password              "foobar"
  user.password_confirmation "foobar"
end
Run Code Online (Sandbox Code Playgroud)

似乎两种方式都在数据库中创建用户权限(工厂女孩是否在数据库中创建用户)?创建测试用户的两种不同方式是什么原因,它们有何不同?什么时候一种方法比另一种方法更合适?

ruby rake ruby-on-rails factory-bot

5
推荐指数
1
解决办法
2060
查看次数