Satu masalah yang saya pikir akan saya hadapi dengan pengujian integrasi saya adalah memiliki beberapa tes mengakses database yang sama. Meskipun ini bukan masalah sekarang, saya tahu kami memiliki beberapa aplikasi di sini yang mengakses database yang sama dan saya hanya mencoba memikirkan cara untuk mencegah masalah ini sebelum terjadi.
Sebuah ide yang saya lihat banyak menggunakan transaksi. Dalam memulai Anda memulai transaksi dan kemudian dalam teardown Anda mengembalikan transaksi. Ini berarti bahwa beberapa tes mengakses tabel database yang sama dan tidak akan saling mempengaruhi yang hebat. Masalah yang saya miliki adalah bahwa dalam kasus saya, 85-95% dari tabel yang saya gunakan di MySQL adalah MyISAM yang tidak mendukung transaksi.
Apakah ada cara untuk berkeliling mesin penyimpanan yang tidak mendukung transaksi tetapi masih memungkinkan beberapa tes untuk mengakses tabel yang sama tanpa mereka saling mempengaruhi? Dari apa yang saya dengar, ruby on rails testing framework menggunakan transaksi dengan cara ini, bagaimana mereka mengatasi masalah ini (atau apakah mereka)?