Бизнес-требования для NocoCache.ts
Сценарий 1.1: Успешное кэширование данных
Описание: Проверить возможность сохранения данных в кэш
Предусловия:
- Кэш инициализирован
- Ключ и значение корректны
Шаги:
- Вызвать метод
NocoCache.set() с валидными ключом и значением
- Проверить, что данные успешно сохранены
Ожидаемый результат:
- Метод возвращает
Promise.resolve(true)
- Данные доступны по указанному ключу
Сценарий 1.2: Получение данных из кэша
Описание: Проверить возможность получения ранее сохраненных данных
Предусловия:
- В кэше есть данные по ключу
Шаги:
- Вызвать метод
NocoCache.get() с существующим ключом
- Проверить возвращаемое значение
Ожидаемый результат:
- Возвращаются корректные данные, соответствующие типу (массив или объект)
Сценарий 1.3: Удаление данных из кэша
Описание: Проверить возможность удаления данных по ключу
Предусловия:
- В кэше есть данные по ключу
Шаги:
- Вызвать метод
NocoCache.del() с существующим ключом
- Попытаться получить данные по этому ключу
Ожидаемый результат:
- Данные успешно удалены
- Повторное получение возвращает пустое значение
Сценарий 1.4: Работа с кэшем при отключенном кэшировании
Описание: Проверить поведение методов при отключенном кэше
Предусловия:
- Кэширование отключено через
NocoCache.disableCache()
Шаги:
- Вызвать
NocoCache.disableCache()
- Попытаться сохранить данные через
NocoCache.set()
- Попытаться получить данные через
NocoCache.get()
Ожидаемый результат:
- Методы возвращают значения по умолчанию без ошибок
- Никакие данные не сохраняются в кэш
Сценарий 1.5: Использование кэша с истечением срока действия
Описание: Проверить возможность установки значений с TTL
Предусловия:
- Кэш инициализирован
Шаги:
- Вызвать метод
NocoCache.setExpiring() с ключом, значением и временем жизни
- Дождаться истечения времени жизни
- Попытаться получить данные по ключу
Ожидаемый результат:
- Данные автоматически удаляются после истечения TTL
- Повторное получение возвращает пустое значение
Сценарий 1.6: Работа с хэшами в кэше
Описание: Проверить возможность работы с хэш-структурами
Предусловия:
- Кэш инициализирован
Шаги:
- Вызвать метод
NocoCache.setHash() с ключом и хэш-объектом
- Вызвать метод
NocoCache.getHash() для получения хэша
- Вызвать метод
NocoCache.getHashField() для получения отдельного поля
Ожидаемый результат:
- Хэш успешно сохраняется и извлекается
- Отдельные поля хэша доступны по имени
Сценарий 1.7: Работа со списками в кэше
Описание: Проверить возможность работы со списковыми структурами
Предусловия:
- Кэш инициализирован
Шаги:
- Вызвать метод
NocoCache.setList() с данными списка
- Вызвать метод
NocoCache.getList() для получения списка
Ожидаемый результат:
- Список успешно сохраняется и извлекается
- Порядок элементов сохраняется
Сценарий 1.8: Проверка существования ключа
Описание: Проверить возможность определения наличия ключа в кэше
Предусловия:
- Кэш инициализирован
- Есть и отсутствующие ключи
Шаги:
- Вызвать метод
NocoCache.keyExists() с существующим ключом
- Вызвать метод
NocoCache.keyExists() с несуществующим ключом
Ожидаемый результат:
- Для существующего ключа возвращается
true
- Для несуществующего ключа возвращается
false
Сценарий 1.9: Обработка ошибок при работе с кэшем
Описание: Проверить корректную обработку ошибок при недоступности хранилища
Предусловия:
- Сервер Redis недоступен
Шаги:
- Вызвать любой метод работы с кэшем
Ожидаемый результат:
- Ошибки обрабатываются корректно
- Приложение продолжает работу
- Возвращаются значения по умолчанию
Сценарий 1.10: Глубокое удаление связанных данных
Описание: Проверить возможность удаления связанных данных по шаблону
Предусловия:
- В кэше есть данные, соответствующие шаблону
Шаги:
- Вызвать метод
NocoCache.deepDel() с ключом и направлением поиска
Ожидаемый результат:
- Все связанные данные удаляются
- Метод завершается успешно
Бизнес-требования для NocoCache.ts
Сценарий 1.1: Успешное кэширование данных
Описание: Проверить возможность сохранения данных в кэш
Предусловия:
Шаги:
NocoCache.set()с валидными ключом и значениемОжидаемый результат:
Promise.resolve(true)Сценарий 1.2: Получение данных из кэша
Описание: Проверить возможность получения ранее сохраненных данных
Предусловия:
Шаги:
NocoCache.get()с существующим ключомОжидаемый результат:
Сценарий 1.3: Удаление данных из кэша
Описание: Проверить возможность удаления данных по ключу
Предусловия:
Шаги:
NocoCache.del()с существующим ключомОжидаемый результат:
Сценарий 1.4: Работа с кэшем при отключенном кэшировании
Описание: Проверить поведение методов при отключенном кэше
Предусловия:
NocoCache.disableCache()Шаги:
NocoCache.disableCache()NocoCache.set()NocoCache.get()Ожидаемый результат:
Сценарий 1.5: Использование кэша с истечением срока действия
Описание: Проверить возможность установки значений с TTL
Предусловия:
Шаги:
NocoCache.setExpiring()с ключом, значением и временем жизниОжидаемый результат:
Сценарий 1.6: Работа с хэшами в кэше
Описание: Проверить возможность работы с хэш-структурами
Предусловия:
Шаги:
NocoCache.setHash()с ключом и хэш-объектомNocoCache.getHash()для получения хэшаNocoCache.getHashField()для получения отдельного поляОжидаемый результат:
Сценарий 1.7: Работа со списками в кэше
Описание: Проверить возможность работы со списковыми структурами
Предусловия:
Шаги:
NocoCache.setList()с данными спискаNocoCache.getList()для получения спискаОжидаемый результат:
Сценарий 1.8: Проверка существования ключа
Описание: Проверить возможность определения наличия ключа в кэше
Предусловия:
Шаги:
NocoCache.keyExists()с существующим ключомNocoCache.keyExists()с несуществующим ключомОжидаемый результат:
truefalseСценарий 1.9: Обработка ошибок при работе с кэшем
Описание: Проверить корректную обработку ошибок при недоступности хранилища
Предусловия:
Шаги:
Ожидаемый результат:
Сценарий 1.10: Глубокое удаление связанных данных
Описание: Проверить возможность удаления связанных данных по шаблону
Предусловия:
Шаги:
NocoCache.deepDel()с ключом и направлением поискаОжидаемый результат: