#問題
現在、Photoモデルのテストをしたくてfactoryで作成しようとしているのですが、エラーが出て困っております。
Photoモデルを作成してテストがしたいのでどなたかご教授いただけないでしょうか。
インメモリの SQLite を使用しております。
#該当のソースコード
- Guideモデル(親)
- Placeモデル(Guideの子)GuideのID参照
- Photoモデル(Placeの子)PlaceのID参照
- 問題のテストファイル
- エラー
1.Guideモデル(親)
$factory->define(Guide::class, function (Faker $faker) { return [ 'user_id' => factory(User::class)->create()->id, 'title' => substr($faker->text, 0, 20), 'days' => substr($faker->text, 0, 10), ]; });
2.Placeモデル(Guideの子)
$factory->define(Place::class, function (Faker $faker) { return [ 'guide_id' => str_random(12), 'place' => substr($faker->text, 0, 10), 'detail' => substr($faker->text, 0, 30), ]; });
3.Photoモデル(Placeの子)
$factory->define(Photo::class, function (Faker $faker) { return [ 'place_id' => function() { factory(Place::class)->create()->id; }, 'filename' => str_random(12) . '.jpg', ]; });
4.問題のテストファイル
public function test_can_return_valid_json() { factory(Photo::class, 5)->create(); //ここでタイトルのエラーがでる $response = $this->get('/api/v1/photo'); }
5.エラー
Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 19 FOREIGN KEY constraint failed (SQL: insert into "places" ("guide_id", "place", "detail") values (JJcRVRQ1n399, Cumque dig, Qui provident saepe voluptates))
回答1件
あなたの回答
tips
プレビュー