DBアクセスのテストコードを書いていて、テーブルにレコードを挿入した際にAUTO INCREMENTされるカラム値が合っているか確認するテストコードを書く必要が合って調べたことのメモ書き。
単純に期待値をテストコードにハードコーディングしてしまうと初回のテストはパスできるが、次回以降は失敗してしまう。
MySQLで次に採番されるAUTO_INCREMENT値を取得するSQLをInsertテストの前に実行して、この取得した値を期待値とすることで再現性のあるテストコードを作成できる。
次に採番されるAUTO_INCREMENT値を取得するSQL
SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_schema = DATABASE()
AND table_name = 'テーブル名';