0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

戦略を立てるとは

Posted at

factory_botはフィクスチャを交換します、簡単な定義構文を使って、複数構築戦略(保存されたインスタンス、保存しないインスタンス、属性ハッシュそしてスタブオブジェクト)をサポートしfactoryを継承を含む同じクラス(ユーザー、管理者ユーザーなど)の複数のfactoryをサポートする。

factory_bot is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class (user, admin_user, and so on), including factory inheritance.

factory_bot book内の豊富なリファレンス、ガイドそしてクックブックを見てください

See our extensive reference, guides, and cookbook in the factory_bot book.

RSpecまたはRailsなどのサードバーティライブラリと統合した情報はfactory_bot wikiを見てください

For information on integrations with third party libraries, such as RSpec or Rails, see the factory_bot wiki.

詳細な紹介映像も持っている。Upcase(サイト名)で無料で見られる

We also have a detailed introductory video, available for free on Upcase.

構築戦略

Build strategies

一度factory_botfactoryは定義された。内蔵のbuild strategiesまたはカスタムのbuild strategyを使って建設することができる。

Once a factory_bot factory is defined, it can be constructed using any of the built-in build strategies, or a custom build strategy.

それらのstrategiesの全てがActiveSupport::Notificationsを使ってfactory_bot.run_factoryインストルンメンテーションに通知し、:name:strategy:traits:overrides:factoryキー付きのペイロードを渡せます

All of these strategies notify on the factory_bot.run_factory instrumentation using ActiveSupport::Notifications, passing a payload with :name, :strategy, :traits, :overrides, and :factory keys.

リスト以外のメソッド(.build, .build_pair, .create, など)は義務的な引数(ファクトリーの名前の一つ)を取る。それらはオプションで特性の名前をとり、オーバーライドするハッシュの属性と特性の名前を取ることができる。最後に、それらはブロックを取ることができる。このブロックは生成されたオブジェクトを取り、更新されたオブジェクトを返す。

The non-list (.build, .build_pair, .create, etc.) methods take one mandatory argument: the name of the factory. They can then optionally take names of traits, and then a hash of attributes to override. Finally, they can take a block. This block takes the produced object as an argument, and returns an updated object.

リストのメソッド(.build_list, .create_list, など)は二つの引数:ビルドするインスタンスの数とfactoryの名前を必要とします。オプションでオーバーライドと特性を取れる。最後にブロックを取ることができる。このブロックは引数として生成されたオブジェクト、ゼロベースのインデックスを取り、更新されたオブジェクトを返します。

The list methods (.build_list, .create_list, etc.) have two required arguments: the name of the factory, and the number of instances to build. They then can optionally take traits and overrides. Finally, they can take a block. This block takes the produced object and the zero-based index as arguments, and returns an updated object.

ビルドする

build

FactoryBot.buildメソッドはinitialize_withに従ってクラスのインスタンスを組み立て、デフォルトでは.newクラスメソッドを呼ぶ。build_listは複数のインスタンスを構築し、build_pairは二つのインスタンスを構築する省略記法です。

The FactoryBot.build method constructs an instance of the class according to initialize_with, which defaults to calling the .new class method. .build_list constructs multiple instances, and .build_pair is a shorthand to construct two instances.

initialize_withを呼んだ後、after_buildフックに頼る

After it calls initialize_with, it invokes the after_build hook.

`アソシエーション(連携)は建築戦略を使って構築される。

Associations are constructed using the build build strategy.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?