Когда я пишу тест для постоянно хранимых данных, я придумываю тест в соответствии с:
[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);
}
Пока все работает, это выглядит нормально. Функция не имеет предыдущих зависимостей и очищается после себя. Проблема заключается в следующем: когда метод .Save () выполняет сохранение, но возвращает ложь / сбой. Утверждение срабатывает, и удаление не вызывается, поэтому оно не очищается после себя.
После этого в базе данных сохраняются данные с именем «id» и сбой всех будущих сохранений.
Единственный способ, которым я могу обойти это, - это сделать предупредительное удаление перед сохранением, но это похоже на способ взлома.