Comment s'assurer que la base de données nettoyage est toujours effectuée après un test?

Considérons l'exemple suivant d'un test unitaire. Les commentaires assez bien expliquer mon problème.

[TestMethod]
public void MyTestMethod()
{

  //generate some objects in the database
  ...

  //make an assert that fails sometimes (for example purposes, this fails always)
  Assert.IsTrue(false);

  //TODO: how do we clean up the data generated in the database now that the test has ended here?

}
  • Vous devez également utiliser le TearDown (ou son équivalent dans votre suite) pour nettoyer, parce que si le test échoue, le nettoyage de code ne sera pas exécuté.
  • Comment au sujet de l'interception d'une exception, puis re-jeter après le nettoyage?
  • Jimmy Bogard (auteur de AutoMapper) a un excellent article et de l'outil: base de données Fiable des tests avec Respawn