Lors de l'écriture d'un test pour les données continuellement stockées, je viens avec un test le long des lignes de:test unitaire d'écriture pour la création de données persistantes et la suppression
[TestMethod]
public void DoCreateDeleteTest() {
PersistentDataStore pds = new PersistentDataStore();
bool createSuccess = pds.Save("id", "payload");
Assert.AreEqual(true, createSuccess);
bool deleteSuccess = pds.Delete("id");
Assert.AreEqual(true, deleteSuccess);
}
Tant que tout fonctionne, cela semble bien. La fonction n'a aucune dépendance antérieure et elle nettoie après elle-même. Le problème est: lorsque la méthode .Save() effectue l'enregistrement mais retourne false/failure. L'assertion se déclenche et la suppression n'est pas appelée, donc elle ne nettoie pas après elle-même. Après cela, il y a des données persistantes dans la base de données avec le nom «id» et toutes les sauvegardes futures échouent.
La seule façon que je peux penser pour contourner c'est de faire une suppression de précaution avant la sauvegarde, mais cela semble être un hack.
Merci, je pense que j'ai été accroché à faire le "Test" nettoyer après lui-même plutôt que de s'assurer que le "TestFixture" était propre. L'observation que je testais deux choses différentes était un vrai moment d'oh. – Adrian