Plongez dans les transactions de base de données dans RSpec – The Startup

Plongez dans les transactions de base de données dans RSpec – The Startup

Ça signifie « exécuter chaque exemple dans une transaction« , c’est à dire. toutes les modifications de la base de données au cours d’un exemple serait annulées à la fin de cet exemple.

But wait… Comment peut «transactionnel agencements » mener à « exécuter chaque exemple dans une transaction« ?

Après avoir creusé la base de code de Rails 4 pour voir ce qu’il fait vraiment derrière la scène, voici ce que j’ai trouvé.

Appels Rails begin_transaction pour chaque connexion à la base de données tout en setup_fixtures

setup_fixtures dans Rails 4

Appels Rails rollback_transaction pour chaque connexion à la base de données tout en teardown_fixtures

teardown_fixtures dans Rails 4

Cela signifie également s’il y a plusieurs bases de données utilisé dans votre application, des transactions sont créées pour chacun d’eux.