Tag: 工厂 机器人

使用FactoryGirl创建的记录在Controller中不可用

我的一项测试已经开始失败。 它以前工作并在浏览器中手动执行相同的操作显示该function正在工作。 我创建了要测试的记录,如下所示: will = FactoryGirl.create(:user, profile: “security of the internet”, first_name: “will”) 为了调查,我添加了一个 binding.pry 打电话到我的控制器。 该操作搜索用户。 如果我做: User.all 在pry提示符下,没有显示用户,结果为空。 如果我用pry进入实际测试,User.all会显示预期的记录。 可能是什么原因造成的?

如何在一步中构建具有子工厂的父级以通过validation

项目必须至少同时创建一个任务以确保validation通过。 这是我用来validation这个的片段: class Project { :minimum => 1 } … end 我所面临的挑战是创建一个合适的工厂,使用FactoryGirl建立一个预先任务的项目。 我正在使用: FactoryGirl.define do factory :task do name “Get this test passing” project end factory :project do title “Complete the application” factory :project_with_tasks do ignore do tasks_count 5 end after(:create) do |project, evaluator| FactoryGirl.create_list(:task, evaluator.tasks_count, project: project) end end end end 现在问题是它失败了,因为它实际上创建了项目,然后尝试创建关联的任务。 该错误报告为: Failure/Error: […]

如何使用工厂女孩和黄瓜创建用户记录?

我从来没有使用工厂女孩,我从本周开始测试,所以所有这些新东西只是让我发疯。 谁能解释一下使用工厂女孩创建记录的简单方法。 这是用例。 我已经使用黄瓜创建了一个测试,它创建了一个用户并创建了其他记录,如帐户,用户类别。 现在我正在编写第二个测试用例,我说应该没有测试数据(我可以使用从第一次测试创建的数据,但不希望从其他测试用例中获得依赖。)。 所以我想使用工厂女孩为我创建一个用户和相关的用户记录。 在这里,我的测试无需使用工厂女孩。 @no-database-cleaner Feature: Managing users parent child relationships In order to use portal I want to create parent child relationships Scenario: Creating a child user Given I am on the homepage When I attempt to sign in with following user account: | email address | password | | abc@company1.com […]

相关工厂的工厂女孩​​唯一性validation失败

我有(简化)工厂定义如下: factory :league do acronym ‘NBA’ end factory :division do league end 分部属于联盟。 当我定义这个工厂时,我的假设就是创建了一个联盟,并且这个联盟会被一遍又一遍地重复使用以给分区一个真正的联盟。 相反,我在FactoryGirl.create(:division)的第二次调用中遇到错误,因为联盟的acronym应该是唯一的。 class League < ActiveRecord::Base validates :acronym, uniqueness: true end 在测试中导致以下中断 ActiveRecord :: RecordInvalid:validation失败:已经删除了缩略词 我该如何解决这个问题,最好不要在测试设置中创建层次结构? 如果我想要实现的目标比factory_girl更好,请建议

Rails如何在Seeds.rb中使用FactoryGirl?

我想让Seeds.rb文件在Rails.root.join(‘spec’)目录的文件中运行一个方法,该目录将用FactoryGirl生成的数据填充数据库。 让我们用“seed_data”方法调用这个文件“helpers.rb” 编辑: require Rails.root.join(‘spec’,’helpers.rb’)链接文件。 资源 这个方法我想在before(:all) do seed_data end种子测试数据库和rake db:seed for development / production数据库具有相同的效果。

AssociationTypeMismatch和FactoryGirl

这最近引起了一些挫折…… 似乎在我的黄瓜测试中使用工厂,在某些情况下会导致AssociationTypeMismatch错误,例如: MyModel(#65776650)期待,得到MyModel(#28190030)(ActiveRecord :: AssociationTypeMismatch) 这些似乎在存在关联引用时发生 – 就好像Factory创建的对象与真实对象不同。 有关更多详细信息,请参阅此问题: Cucumber重复类问题:AssociationTypeMismatch 我一直在逐渐将Factory调用更改为真正的Model.create或mock_model调用。 继续使用工厂女孩会很好……我想知道是否有什么我可能做错了? 谢谢

FactoryGirl:填充有很多关系保存构建策略

我的问题似乎很常见,但我在文档或互联网本身没有找到任何答案。 它似乎是这个问题的一个克隆has_many同时尊重factory_girl中的构建策略,但是在post-factory_girl改变了很多之后的2。5年。 我有一个名为照片的has_many关系的模型。 我想填充这个有很多关系,保留我选择的构建策略。 如果我打电话offering = FactoryGirl.build_stubbed :offering, :stay我希望offering.photos是一个存根模型的集合。 我发现实现这一目标的唯一方法是: factory :offering do association :partner, factory: :named_partner association :destination, factory: :geolocated_destination trait :stay do title “Hotel Gran Vía” description “Great hotel in a great zone with great views” offering_type ‘stay’ price 65 rooms 70 stars 4 event_spaces 3 photos do case @build_strategy when FactoryGirl::Strategy::Create then […]

我的控制器的rspec测试返回nil(+工厂女孩)

我正在学习Rails上的rspec和工厂女孩的测试,我无法让它们工作。 我的用户控制器如下所示: class UsersController < ApplicationController def index @users = User.all.order(:first_name) end end 和测试: require ‘spec_helper’ describe UsersController do before(:each) do @user1 = FactoryGirl.create(:user, first_name: “B”, last_name: “B”, uid: “b”) @user2 = FactoryGirl.create(:user, first_name: “A”, last_name: “A”, uid: “a”) end describe “GET index” do it “sets a list of users sorted by first name” do […]

将灯具转换为Rails中的Factory Girl

我想将我的灯具迁移到Rails中的“Factory Girl”。 有没有简单的方法来转换factories.rb文件中的所有yml文件?

通过FactoryGirlvalidation错误

我在通过FactoryGirlvalidation我的数据时遇到问题。 对于team.rb,自定义validation为has_only_one_leader和belongs_to_same_department class Team { where(active: true) } validate :has_only_one_leader validate :belongs_to_same_department def has_only_one_leader unless self.users.where!(designation: “Team Leader”).size == 1 errors.add(:team, “needs to have exactly one leader”) end end def belongs_to_same_department unless self.users.where!.not(department: self.department).size == 0 errors.add(:users, “should belong to the same department”) end end 我还将包括membership.rb和user.rb(仅限关联)仅供参考。 class Membership < ActiveRecord::Base belongs_to :team belongs_to :user end […]