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 を考慮していない、ということに気づけていなかったのでした。
ディスカッション
コメント一覧
まだ、コメントがありません