Я реализую хранилище, поддерживаемое leveldb (https://github.com/syndtr/goleveldb) на ходу. Я новичок на ходу и пытаюсь выяснить, как получить тестовое покрытие для условия в приведенном ниже коде, где perr! = Нет, я могу проверить свои собственные ошибки, но не могу понять, как надежно заставить метод Put leveldb возвращать ошибку.
Макетирование базы данных только для того, чтобы получить тестовое покрытие для нескольких крайних случаев, кажется большой работой за небольшую награду. Является ли насмешливый leveldb моим единственным реальным выбором здесь? Если да, то какова рекомендуемая основа для насмешки? Если есть другой способ, что это?
if err == leveldb.ErrNotFound {
store.Lock()
perr := store.ldb.Put(itob(p.ID), p.ToBytes(), nil)
if perr != nil {
store.Unlock()
return &StorerError{
Message: fmt.Sprintf("leveldb put error could not create puppy %d : %s", p.ID, perr),
Code: 501,
}
}
store.Unlock()
return nil
}