问题标签 [factory-bot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
11945 浏览

ruby-on-rails - factory_girl + rspec 在每个示例之后似乎都没有回滚更改

与此处描述的问题类似: http ://rpheath.com/posts/411-how-to-use-factory-girl-with-rspec

简而言之(缩短的代码):

规范助手:

工厂.rb:

在我的规范中

错误:

重复的条目名称“NY”等


问题: rspec 不应该在每个规范示例之前清除数据库,从而不会引发重复输入错误吗?

0 投票
9 回答
13577 浏览

ruby-on-rails - 如何重置 factory_girl 序列?

前提是我有项目工厂

我正在创建项目实例

到这个时候,下次我执行 Factory.build(:project) 时,我将收到一个标题设置为“项目 3 标题”的 Project 实例,依此类推。不奇怪。

现在说我希望在这个范围内重置我的计数器。就像是:

实现这一目标的最佳方法是什么?

我目前正在使用以下版本:

factory_girl (1.3.1) factory_girl_rails (1.0)

0 投票
2 回答
3024 浏览

ruby-on-rails - 如何在 factory_girl 中建立/创建多对多关联?

我有一个与Person模型具有多对多关系的Email模型,我想创建一个工厂,让我为这个人生成名字和姓氏(这已经完成)并创建一个基于的电子邮件地址那个人的名字。这是我创建person的名称:

0 投票
1 回答
936 浏览

ruby-on-rails - Rails 单元测试中的辅助函数

我在单元测试的代码中使用了这种代码。

我使用的是 FactoryGirl 而不是固定装置。

我发现我经常重复自己,并且拥有辅助函数会非常有用。在单元测试中创建和调用辅助函数的最佳方法是什么?控制器中是否有before_filter可用的(我尝试将其放入,但它只是一个未定义的方法)。任何帮助表示赞赏!

0 投票
1 回答
1038 浏览

ruby-on-rails - 在 factory_girl 定义中指定随机关联对象

有没有办法factory_girl指定关联应该指向的随机实例?例如,我有一个Like对象belongs_tooneUser和 one SocialUnit。我希望工厂Like选择一个随机现有的User和一个随机SocialUnit喜欢的,而不是仅仅生成一个新的。下面的片段类型的作品:

它确实选择了一个随机用户,但似乎随机用户只被选择了一次,因为运行这个

用同一个用户创建一堆喜欢。我想这是有道理的……工厂被定义一次,然后被重复使用了很多次。

我可以使用序列来强制随机性;有没有办法在工厂定义中定义它,或者顺序是最好的方法?

谢谢。

0 投票
1 回答
351 浏览

ruby-on-rails - 一些 Rails 单元测试问题(使用 Shoulda + Factory girl)

  1. 我有几个复杂的对象要存根(我使用的宝石实例)。我在哪里可以集中这些存根以使它们可用于所有测试?

  2. 如何在没有 rake:test 的情况下以编程方式清除测试之间的数据库?我想通过 textmate 快速运行单个测试,但是这样做会出错,因为它不会在测试之间清除数据库

  3. 测试运行缓慢,因为它必须启动一个 Rails 实例。如何加快测试速度?特别是在编写测​​试并希望快速运行更改时

0 投票
1 回答
553 浏览

ruby-on-rails - Factory Girl 创建的对象在测试之间没有清除?

我在实施测试时感到有些困惑。使用 User.create 我可以在多个测试中创建和保存:

但是使用 Factory.create,它会引发 ActiveRecord 重复条目错误:

错误:“ActiveRecord::StatementInvalid: Mysql::Error: Duplicate entry”

是什么赋予了?

0 投票
5 回答
11603 浏览

ruby-on-rails - 为什么 factory_girl 不为我进行交易操作?- 测试后行保留在数据库中

我正在尝试使用 factory_girl 创建一个“用户”工厂(使用 RSpec),但它似乎并没有以事务方式运行,并且显然由于测试数据库中先前测试的残余数据而失败。

运行第一组测试很好:

一切都很好,正如预期的那样,但是再次运行测试:

修复尝试 - 使用 Factory.sequence

由于我的电子邮件字段有唯一性约束,我尝试使用 factory_girl 的序列方法来解决问题:

然后我跑了

用户似乎保留在数据库中

如果我查看 /db/test.sqlite3 数据库,似乎测试用户的行在测试之间没有从数据库中回滚。我认为这些测试应该是事务性的,但对我来说似乎并非如此。

这可以解释为什么测试第一次运行正确(如果我清除数据库)但第二次失败。

谁能解释我应该改变什么以确保测试以事务方式运行?

0 投票
1 回答
651 浏览

factory-bot - 这个工厂女孩的定义有什么问题

测试失败得很惨,因为Factory.create(:colonia)总是创建一个 id 等于 0 的 Colonia 对象!!!@_@

为什么这个工厂要创建 id 为 0 的对象?

0 投票
1 回答
1177 浏览

ruby-on-rails - Rails 3 和 Factory Girl 仅在传入属性时创建用户

我正在使用 Rails 3 rc、Factory Girl、Rspec 和 Authlogic。是否有任何方式或原因会发生这种情况:

当我创建这样的用户时:

我收到密码确认“太短”的问题。

我的 factory.rb 是

但是当我在手动输入 :password 和 :password_confirmation 时创建一个,它工作得很好。

有谁知道是什么原因造成的?