Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
FactoryGirl入門     @suchi              hamamatsu.rb#9                  2011/11/09
なぜGirlなの?
世界三大ファクトリー
世界三大ファクトリー• ファクトリーレコード – マンチェスターのインディーズレーベル• アンディ・ウォーホルのファクトリー – ウォーホルのスタジオ – 当時の先鋭アーティストのたまり場• うなぎパイファクトリー – 春華堂によるうなぎパイ工場
おそらく
イーディFactory  Girl
サンプル(BBS)https://github.com/suchi/fgbbs
Articleclass Article < ActiveRecord::Base  has_many :attaches  has_many :comments validates_presence_of :title validates_p...
Attachclass Attach < ActiveRecord::Base  belongs_to :article  validates_presence_of :filenameend
Commentclass Comment < ActiveRecord::Base  belongs_to :article,             :dependent => :destroy  validates_presence_of ...
Fixture(article.yaml)one:  title: タイトル  body: こんにちは  user: uchiyamatwo:  title: また別のタイトル  body: どうもどうも  user: Cherencov
FactoryGirlFactory.define :article |do| f  f.title "タイトル"  f.user "uchiyama"  f.body "こんにちは"end
FactoryGirl• Factory.create(:article)  – Articleインスタンスを返す• Factory.create(:article, :title => "  別のタイトル", :user => "mackat...
エラー>> Factory.create(:article)ActiveRecord::RecordInvalid:   Validation failed:    Title has already been taken        fro...
Articleclass Article < ActiveRecord::Base  has_many :attaches  has_many :comments validates_presence_of :title validates_p...
Sequenceを使うFactory.sequence(:article) do |n|  "article_#{n}"endFactory.next(:article)#=> "article_1"Factory.next(:article)...
Sequence[:article_title, :user_name, :body].each do |sym|  Factory.sequence(sym) do |n|    "#{sym.to_s}_#{n}"  endendFacto...
Article.titleにシーケンスを使うFactory.define :article |do| f     f.title Factory.next(:article_title)     f.user "uchiyama"     f....
エラーFactory.define :article |do| f      f.title Factory.next(:article_title)      f.user "uchiyama"      f.body "こんにちは"endF...
遅延評価Factory.define :article |do| f  f.title { Factory.next(:article_title)}  f.user "uchiyama"  f.body "こんにちは"end
関連
添付ファイル付ArticleFactory.define :article_with_attaches,               :class => Article do |f|  f.title { Factory.next(:artic...
コメント付ArticleFactory.define :article_with_comment,               :class => Article do |f|  f.title { Factory.next(:article_...
遅延評価にしてみるFactory.define :article_with_comment,                :class => Article do |f|  f.title { Factory.next(:article_ti...
Commentclass Comment < ActiveRecord::Base  belongs_to :article,             :dependent => :destroy  validates_presence_of ...
after_createを使うFactory.define :article_with_comments,                     :class => Article do |f|  f.title     { Factory....
その他便利な機能• Factory.attributes_for(:article)  – 属性のhashを返す  – [:title=>"article_title_6", :user=>"uch    iyama", :body=>"こんに...
欠点• Factory名称の名前空間がグローバル• 記法がちょっとダサい• 後発のFablicationはもっと洗練されて  いるらしい
TIPS• 実験はコンソールで --sandboxオプ  ションをつけて> ruby script/console --sandbox
Q&A
FactoryGirl入門
FactoryGirl入門
FactoryGirl入門
FactoryGirl入門
FactoryGirl入門
FactoryGirl入門
Prochain SlideShare
Chargement dans…5
×

FactoryGirl入門

hamamatsu.rb #9
FactoryGirl入門(私が)の資料。

https://github.com/hamamatsu-rb/hamamatsu-rb.github.com/wiki

追加(2013/9/1): 最近は trait なんてのがあるようです。こちらがわかりやすかったです→ http://techracho.bpsinc.jp/morimorihoge/2013_08_23/12744

  • Soyez le premier à commenter

FactoryGirl入門

  1. 1. FactoryGirl入門 @suchi hamamatsu.rb#9 2011/11/09
  2. 2. なぜGirlなの?
  3. 3. 世界三大ファクトリー
  4. 4. 世界三大ファクトリー• ファクトリーレコード – マンチェスターのインディーズレーベル• アンディ・ウォーホルのファクトリー – ウォーホルのスタジオ – 当時の先鋭アーティストのたまり場• うなぎパイファクトリー – 春華堂によるうなぎパイ工場
  5. 5. おそらく
  6. 6. イーディFactory Girl
  7. 7. サンプル(BBS)https://github.com/suchi/fgbbs
  8. 8. Articleclass Article < ActiveRecord::Base has_many :attaches has_many :comments validates_presence_of :title validates_presence_of :body validates_presence_of :user validates_uniqueness_of :titleend
  9. 9. Attachclass Attach < ActiveRecord::Base belongs_to :article validates_presence_of :filenameend
  10. 10. Commentclass Comment < ActiveRecord::Base belongs_to :article, :dependent => :destroy validates_presence_of :body validates_presence_of :user validates_presence_of :article_idend
  11. 11. Fixture(article.yaml)one: title: タイトル body: こんにちは user: uchiyamatwo: title: また別のタイトル body: どうもどうも user: Cherencov
  12. 12. FactoryGirlFactory.define :article |do| f f.title "タイトル" f.user "uchiyama" f.body "こんにちは"end
  13. 13. FactoryGirl• Factory.create(:article) – Articleインスタンスを返す• Factory.create(:article, :title => " 別のタイトル", :user => "mackato") – 属性をオーバーライドできる• a = Factory.build(:article)• a.changed? #=> true – buildはDBに保存しない
  14. 14. エラー>> Factory.create(:article)ActiveRecord::RecordInvalid: Validation failed: Title has already been taken from d:/usr/ruby-1.8/lib/...
  15. 15. Articleclass Article < ActiveRecord::Base has_many :attaches has_many :comments validates_presence_of :title validates_presence_of :body validates_presence_of :user validates_uniqueness_of :titleend
  16. 16. Sequenceを使うFactory.sequence(:article) do |n| "article_#{n}"endFactory.next(:article)#=> "article_1"Factory.next(:article)#=> "article_2"
  17. 17. Sequence[:article_title, :user_name, :body].each do |sym| Factory.sequence(sym) do |n| "#{sym.to_s}_#{n}" endendFactory.next(:article_title) #=> "article_1"Factory.next(:article_title) #=> "article_2"Factory.next(:article_title) #=> "article_3"
  18. 18. Article.titleにシーケンスを使うFactory.define :article |do| f f.title Factory.next(:article_title) f.user "uchiyama" f.body "こんにちは"end
  19. 19. エラーFactory.define :article |do| f f.title Factory.next(:article_title) f.user "uchiyama" f.body "こんにちは"endFactory.create(:article)#=> ActiveRecord::RecordInvalid: Validation failed: Title has already been taken
  20. 20. 遅延評価Factory.define :article |do| f f.title { Factory.next(:article_title)} f.user "uchiyama" f.body "こんにちは"end
  21. 21. 関連
  22. 22. 添付ファイル付ArticleFactory.define :article_with_attaches, :class => Article do |f| f.title { Factory.next(:article_title) } f.user uchiyama f.body "こんにちは f.attaches [ Factory(:attach), Factory(:attach) ]end• シンボルと作成するクラスが異なる場合 は:classオプションで指定
  23. 23. コメント付ArticleFactory.define :article_with_comment, :class => Article do |f| f.title { Factory.next(:article_title) } f.user uchiyama f.body "こんにちは f.comments [ Factory(:comment), Factory(:comment) ]end• →ロード時にエラー
  24. 24. 遅延評価にしてみるFactory.define :article_with_comment, :class => Article do |f| f.title { Factory.next(:article_title) } f.user uchiyama f.body "こんにちは f.comments {[ Factory(:comment), Factory(:comment) ]}end• →インスタンス作成時にエラー
  25. 25. Commentclass Comment < ActiveRecord::Base belongs_to :article, :dependent => :destroy validates_presence_of :body validates_presence_of :user validates_presence_of :article_idend
  26. 26. after_createを使うFactory.define :article_with_comments, :class => Article do |f| f.title { Factory.next(:article_title) } f.user { Factory.next(:user_name) } f.body こんにちは f.after_create do |article| comments = [ Factory(:comment, :article_id => article.id), Factory(:comment, :article_id => article.id) ] endend• after_create - Article.createが呼ばれた あと、インスタンスを引数に呼ばれる
  27. 27. その他便利な機能• Factory.attributes_for(:article) – 属性のhashを返す – [:title=>"article_title_6", :user=>"uch iyama", :body=>"こんにちは"}• Factory.stub(:article) – stubを作成する
  28. 28. 欠点• Factory名称の名前空間がグローバル• 記法がちょっとダサい• 後発のFablicationはもっと洗練されて いるらしい
  29. 29. TIPS• 実験はコンソールで --sandboxオプ ションをつけて> ruby script/console --sandbox
  30. 30. Q&A

    Soyez le premier à commenter

    Identifiez-vous pour voir les commentaires

  • vikkebsd

    Jun. 25, 2013
  • tchikuba

    Jul. 1, 2013
  • doridoridoriands

    Jul. 17, 2013
  • YutaKato

    Jul. 21, 2013
  • yuichisano967

    Oct. 1, 2013
  • hadzimme

    Oct. 23, 2013
  • hironaos

    Dec. 4, 2013
  • sat0shitakan0

    Dec. 25, 2013
  • TaketoTakashima

    Jan. 18, 2014
  • minorunagata

    Jan. 19, 2014
  • kiris60

    Jan. 28, 2014
  • suisuiss

    Feb. 5, 2014
  • garbagetown

    Feb. 9, 2014
  • ngtknt

    Mar. 8, 2014
  • risgk

    May. 20, 2014
  • mktakuya

    Aug. 20, 2014
  • suzumi4

    Oct. 2, 2014
  • tmd45

    Oct. 2, 2014
  • inohiro

    Oct. 14, 2014
  • hanicoo

    Feb. 18, 2015

hamamatsu.rb #9 FactoryGirl入門(私が)の資料。 https://github.com/hamamatsu-rb/hamamatsu-rb.github.com/wiki 追加(2013/9/1): 最近は trait なんてのがあるようです。こちらがわかりやすかったです→ http://techracho.bpsinc.jp/morimorihoge/2013_08_23/12744

Vues

Nombre de vues

25 202

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

6 685

Actions

Téléchargements

34

Partages

0

Commentaires

0

Mentions J'aime

31

×