Question

J'écris un test en Minitest qui crée une entrée de la base de données. Après le test est exécuté, toutes les modifications que le test ne devrait être annulée. Qu'est-ce qu'un bon moyen d'y parvenir?

require 'minitest/autorun'
require 'rubygems'
require 'sequel'
require 'factory_girl'

class TestPostgresqlFunctions < MiniTest::Unit::TestCase
  def test_simple_function
    Factory.find_definitions
    user = FactoryGirl.create(:user)
  end
end

Avec ce code, l'entrée créée restera dans la base de données. Je ne suis pas en utilisant Rails ou tout autre cadre. La base de données que je utilise est PostgreSQL 9.1.

Était-ce utile?

La solution

Cela devrait fonctionner (nécessite Sequel 3.29.0 ou plus):

# Use this class as the base class for your tests
class SequelTestCase < MiniTest::Unit::TestCase
  def run(*args, &block)
    Sequel::Model.db.transaction(:rollback=>:always){super}
  end
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top