Что должны охватывать Unit тесты?

У меня такой вопрос:
Как грамотно писать Unit тесты? Что конкретно они должны охватывать?
Это скорее теоретический вопрос, нежели практический.

Скажем, у меня есть некий интерфейс, который подразумевает, что класс, который его реализует, будет писать/читать в/из хранилища и проводить некоторые манипуляции с данными (например, оборачивать их в другой интерфейс и возвращать). Для тестов интерфейса, я выбрал хранить данные в памяти. Обложил тестами.
EntityInterface: 
    getDataFieldValue : void
    setDataFieldValue : mixed 
    getScheme : SchemeInterface


Тестовая реализация SchemeInterface также хранит некоторые данные в памяти.
В продакшене, реализации интерфейсов хранят данные в MySQL.

Теперь основной вопрос:
Сколько потребуется написать наборов тестов, если мне потребуется создать реализацию интерфейсов, которые хранят данные, в Redis'е?
По моим подсчетам получается:
  1. Набор тестов для EntityInterface
  2. Набор тестов для SchemeInterface
  3. Набор тестов для EntityMysqlStorage
  4. Набор тестов для SchemeMysqlStorage
  5. Набор тестов для EntityRedisStorage
  6. Набор тестов для SchemeRedisStorage

Верно ли это?
Или достаточно только первых двух наборов?
И вообще, на верном ли я пути?

Спасибо.
  • Вопрос задан
  • 2546 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы