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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions