delete method
Removes any value stored under key.
A no-op if the key is absent. After this completes, a subsequent load
for the same key must return null.
Throws an exception if the delete operation fails.
Implementation
@override
Future<void> delete(String key) async {
deleteCount++;
_deletedKeys.add(key);
if (deleteDelay != null) await Future<void>.delayed(deleteDelay!);
if (deleteError != null) throw deleteError!;
_data.remove(key);
}