Skip to content

Бизнес-требования для работы с кешами #4

@Tozarin

Description

@Tozarin

Бизнес-требования для NocoCache.ts

Сценарий 1.1: Успешное кэширование данных

Описание: Проверить возможность сохранения данных в кэш
Предусловия:

  • Кэш инициализирован
  • Ключ и значение корректны
    Шаги:
  1. Вызвать метод NocoCache.set() с валидными ключом и значением
  2. Проверить, что данные успешно сохранены
    Ожидаемый результат:
  • Метод возвращает Promise.resolve(true)
  • Данные доступны по указанному ключу

Сценарий 1.2: Получение данных из кэша

Описание: Проверить возможность получения ранее сохраненных данных
Предусловия:

  • В кэше есть данные по ключу
    Шаги:
  1. Вызвать метод NocoCache.get() с существующим ключом
  2. Проверить возвращаемое значение
    Ожидаемый результат:
  • Возвращаются корректные данные, соответствующие типу (массив или объект)

Сценарий 1.3: Удаление данных из кэша

Описание: Проверить возможность удаления данных по ключу
Предусловия:

  • В кэше есть данные по ключу
    Шаги:
  1. Вызвать метод NocoCache.del() с существующим ключом
  2. Попытаться получить данные по этому ключу
    Ожидаемый результат:
  • Данные успешно удалены
  • Повторное получение возвращает пустое значение

Сценарий 1.4: Работа с кэшем при отключенном кэшировании

Описание: Проверить поведение методов при отключенном кэше
Предусловия:

  • Кэширование отключено через NocoCache.disableCache()
    Шаги:
  1. Вызвать NocoCache.disableCache()
  2. Попытаться сохранить данные через NocoCache.set()
  3. Попытаться получить данные через NocoCache.get()
    Ожидаемый результат:
  • Методы возвращают значения по умолчанию без ошибок
  • Никакие данные не сохраняются в кэш

Сценарий 1.5: Использование кэша с истечением срока действия

Описание: Проверить возможность установки значений с TTL
Предусловия:

  • Кэш инициализирован
    Шаги:
  1. Вызвать метод NocoCache.setExpiring() с ключом, значением и временем жизни
  2. Дождаться истечения времени жизни
  3. Попытаться получить данные по ключу
    Ожидаемый результат:
  • Данные автоматически удаляются после истечения TTL
  • Повторное получение возвращает пустое значение

Сценарий 1.6: Работа с хэшами в кэше

Описание: Проверить возможность работы с хэш-структурами
Предусловия:

  • Кэш инициализирован
    Шаги:
  1. Вызвать метод NocoCache.setHash() с ключом и хэш-объектом
  2. Вызвать метод NocoCache.getHash() для получения хэша
  3. Вызвать метод NocoCache.getHashField() для получения отдельного поля
    Ожидаемый результат:
  • Хэш успешно сохраняется и извлекается
  • Отдельные поля хэша доступны по имени

Сценарий 1.7: Работа со списками в кэше

Описание: Проверить возможность работы со списковыми структурами
Предусловия:

  • Кэш инициализирован
    Шаги:
  1. Вызвать метод NocoCache.setList() с данными списка
  2. Вызвать метод NocoCache.getList() для получения списка
    Ожидаемый результат:
  • Список успешно сохраняется и извлекается
  • Порядок элементов сохраняется

Сценарий 1.8: Проверка существования ключа

Описание: Проверить возможность определения наличия ключа в кэше
Предусловия:

  • Кэш инициализирован
  • Есть и отсутствующие ключи
    Шаги:
  1. Вызвать метод NocoCache.keyExists() с существующим ключом
  2. Вызвать метод NocoCache.keyExists() с несуществующим ключом
    Ожидаемый результат:
  • Для существующего ключа возвращается true
  • Для несуществующего ключа возвращается false

Сценарий 1.9: Обработка ошибок при работе с кэшем

Описание: Проверить корректную обработку ошибок при недоступности хранилища
Предусловия:

  • Сервер Redis недоступен
    Шаги:
  1. Вызвать любой метод работы с кэшем
    Ожидаемый результат:
  • Ошибки обрабатываются корректно
  • Приложение продолжает работу
  • Возвращаются значения по умолчанию

Сценарий 1.10: Глубокое удаление связанных данных

Описание: Проверить возможность удаления связанных данных по шаблону
Предусловия:

  • В кэше есть данные, соответствующие шаблону
    Шаги:
  1. Вызвать метод NocoCache.deepDel() с ключом и направлением поиска
    Ожидаемый результат:
  • Все связанные данные удаляются
  • Метод завершается успешно

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions