Googleドライブの仕様が変わっていて「マイドライブ」で同期するローカルフォルダの変更に手間取ったお話
[2023/02/22]
削除しようとしているそのモデル、SoftDelete 設定になってません?
assertDatabaseMissing ではなく assertSoftDeleted 使ってね。
テストコードをたくさん書いていくぜー!
って張り切ったものの、めっちゃ足止め食らいました…。
リモートデバッグで1行ずつ動かしても、
App\Models\Post::count() 1
(ここで削除してるはず)
App\Models\Post::count() 0
(ちゃんと消えてるじゃん!)
なのに結果は…
Failed asserting that a row in the table [posts] does not match the attributes { "id": 4 }. Found: [ { "id": 4, "parent_id": 6, "title": "OnlrEfilJ2Igi9kpUZ91AvkKJJf6Rrg7wQtqhtLmS9wMXaAI1NMQh4JqrP684iPSRVAy6i7cM1m94T1w4YVyXYSuwrpmqVRdDEaT", "content": "COh8VWODN8gTUZopDDvLzVXx6uOtdgoVWwxtJKaFWyPH(略)0IRbztNQV0rP5jkDw6lRjQAwo7l4ShUAdlnY", "post_date": "2021-09-29 00:00:00", "created_at": "2021-09-29 11:26:42", "updated_at": "2021-09-29 11:27:25", "deleted_at": "2021-09-29 11:27:25" } ].
となりまして想定通りに行かず…。
DB の Driver が SQLite になっていて、外部参照キーがうんぬんカスケードが…みたいな話は見つかったものの、それじゃないんだよなー…と結構悩みました。
結局、 assertDatabaseMissing は soft_delete を考慮していない、ということに気づけていなかったのでした。
ディスカッション
コメント一覧
まだ、コメントがありません