teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

コメントを受けて追記

2020/05/29 23:05

投稿

jnchito
jnchito

スコア357

answer CHANGED
@@ -91,4 +91,30 @@
91
91
  ```
92
92
 
93
93
  こんな説明でいかがでしょうか?
94
- 何か不明な点があればまたご質問ください。
94
+ 何か不明な点があればまたご質問ください。
95
+
96
+ ## 追記
97
+ あ、たしかに`FactoryBot.`を付け忘れてましたね。すいません。コードの方は修正しておきました。
98
+ ちなみに`spec/rails_helper.rb`に`config.include FactoryBot::Syntax::Methods`という設定を入れておくと`FactoryBot.`が省略できます。([参考](https://qiita.com/Ushinji/items/522ed01c9c14b680222c#4-factory_bot%E3%81%AE%E8%A8%AD%E5%AE%9A))
99
+ 僕はふだんこのスタイルでFactoryBotを使ってます。
100
+
101
+ コメントに載っていたコードですが、
102
+
103
+ ```ruby
104
+ it "userが作成されたらprojectが5個作成される" do
105
+ project = FactoryBot.create(:user, :with_projects)
106
+ expect(project.projects.length).to eq 5
107
+ end
108
+ ```
109
+
110
+ は、
111
+
112
+ ```ruby
113
+ it "userが作成されたらprojectが5個作成される" do
114
+ user = FactoryBot.create(:user, :with_projects)
115
+ expect(user.projects.length).to eq 5
116
+ end
117
+ ```
118
+
119
+ というように変数名を`user`にした方がわかりやすいと思いました。
120
+ それ以外はOKだと思います????

2

コードの修正

2020/05/29 23:05

投稿

jnchito
jnchito

スコア357

answer CHANGED
@@ -29,7 +29,7 @@
29
29
  ```
30
30
  project = FactoryBot.create :project
31
31
  5.times do
32
- create :note, project: project
32
+ FactoryBot.create :note, project: project
33
33
  end
34
34
  ```
35
35
 

1

URL修正

2020/05/29 22:53

投稿

jnchito
jnchito

スコア357

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  ご質問の件について、できるだけ詳しく説明してみますね。
4
4
 
5
5
  なお、以下のサンプルコードはEveryday RailsのGitHubリポジトリから抜粋しています。
6
- https://github.com/everydayrails/everydayrails-rspec-2017
6
+ [https://github.com/everydayrails/everydayrails-rspec-2017](https://github.com/everydayrails/everydayrails-rspec-2017)
7
7
 
8
8
  > ブロック内の|project|
9
9