- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的模型中,我有以下设置:
class User < ActiveRecord::Base
has_many :assignments
has_many :roles, :through => :assignments
end
class Role < ActiveRecord::Base
has_many :assignments
has_many :users, :through => :assignments
end
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :role
attr_accessible :role_id, :user_id
end
在我的 factory.rb 文件中我有:
FactoryGirl.define do
factory :user do
sequence(:username) { |n| "user#{n}" }
email { "#{username}@example.com" }
password 'secret'
password_confirmation 'secret'
factory :admin do
...
end
end
factory :role do
name 'Normal'
value 'normal'
end
factory :assignment do
...
end
end
我正在努力弄清楚如何向“用户” block 内的“管理员”工厂添加一个角色:名称=>“管理员”,:值=>“管理员”,以便我可以调用
create(:admin)
在我的测试中,有一个具有管理员角色的用户。
感谢您的关注。
最佳答案
对于这样的工厂,您需要使用 factory girl 的回调。试试这个:
FactoryGirl.define do
factory :user do
...
end
factory :admin, :parent => :user do
after_create {|u| Factory(:assignment, :role => Factory(:role, :name => 'admin', :value => 'admin'), :user => u)}
end
factory :role do
...
end
factory :assignment do
user {|a| a.association(:user)}
role {|a| a.association(:role)}
end
end
关于ruby-on-rails - 如何创建与 has_many :through relationship in Factory Girl? 的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584715/
我非常喜欢使用 Factory Girl 来设置我的测试。我可以在一行中建立关联链。例如: Factory.create(:manuscript) 自动创建期刊、期刊所有者、手稿作者等。它让我的设置
我试图让我的用户回答“你是男孩还是女孩?”的问题。与这两个选择之一,并迫使他们选择其中之一。 我认为我正朝着正确的方向前进,但每当我运行代码时,如果选择第二个选项,就会出现问题。 我做错了什么? va
我正在使用 Factory Girl 在我的模型/单元测试中为一个组创建两个实例。我正在测试模型以检查对 .current 的调用是否根据到期属性仅返回“当前”组,如下所示... describe
我正在为链接到只读遗留数据库的应用程序设置测试。 我有 2 个模型 ProductSpecification 和 Stock。 Stock 模型正在访问遗留数据库中的只读数据。 class Produ
有一个项目有包含许多行程的发票。我遇到了新故事,要求发票必须有行程。我添加了验证 validates :trips, presence: true但它现在破坏了我的一些测试,因为 FactoryGir
如果我有 2 个模型 - 例如。商店和品牌,我想为拥有 3 到 10 个品牌的商店建模,使用工厂女郎做这件事的好方法是什么? factory :brand do |b| b.name "Hip B
我正在尝试为我的用户模型及其关联创建一个工厂。但是,我似乎无法在我的 Factory Girl 代码中获得正确的语法。我已经通读了 Factory Girl 文档,但似乎无法找到有关我的特定用例的任何
我正在使用 Rspec 和 selenium-webdriver gem 来测试网络应用程序。而且我想在我的测试中取消工厂以模拟用户而不是每次都手动创建用户。所以,我做了 gem install fa
我在 guid 字段上设置了约束和验证,因此每个都是唯一的。问题是,使用下面的工厂定义,我只能创建一个用户实例,因为其他实例无法通过验证。 我如何正确地做到这一点,以便 guid 字段始终是唯一的?
当我调用 Factory.attributes_for(:some_class) 时,我显然得到了该类的属性散列。 { :attribute_one => "hello", :attribute_tw
与 RSpec 和 Capybara 一起工作,我得到了一个有趣的测试失败模式,它会随着测试用例中的一些细微的行重新排列而消失......这应该不重要。 我正在开发自己的身份验证系统。它目前正在运行,
我有一个与我的 Cocoa 应用程序关联的协议(protocol)处理程序。 [[NSAppleEventManager sharedAppleEventManager] setEventHa
假设您有以下 mongoid 文档: class User include Mongoid::Document embeds_one :name end class UserName
我正在尝试将一个使用 Fixtures 的 Rails 3 应用程序移到 Factory Girl 上,但我并不完全确定数据库的正确方法。 (请注意,我正在使用 Rspec 进行测试)。 我有一个 s
我正在尝试通过 Factorygirl 回调创建一些额外的记录。它必须使用该工厂中的一个特征,并且必须向它传递一个动态变量。我以为我可以做这样的事情: create_list(:some_factor
反馈 模型需要一个帐户 才能存在。每个 account 都有一个在模型中验证的唯一 :uuid:validates :uuid, presence: true, uniqueness: true 我正
Factory Girl 文档提供了这种用于创建(我猜)父子关联的语法... Factory.define :post do |p| p.author {|a| a.association
我想使用 Factory Girl 生成大量模型,每个模型只有一两个属性不同。 有没有办法让工厂接受模型的实例?理想情况下,我想 before(:all) do data1 = creat
我想在创建工厂时引用工厂所代表的类。这可能吗? 这是我现在正在做的: factory :foo do # Foo class name "Foo" ... initialize_with
好的,所以我想测试需要管理员用户的功能,我正在尝试以管理员身份登录,但为了做到这一点,我需要有一个管理员用户 这是我的代码 let(:user) { FactoryGirl.create(:use
我是一名优秀的程序员,十分优秀!