У меня такой вопрос:
Как грамотно писать Unit тесты? Что конкретно они должны охватывать?
Это скорее теоретический вопрос, нежели практический.
Скажем, у меня есть некий интерфейс, который подразумевает, что класс, который его реализует, будет писать/читать в/из хранилища и проводить некоторые манипуляции с данными (например, оборачивать их в другой интерфейс и возвращать). Для тестов интерфейса, я выбрал хранить данные в памяти. Обложил тестами.
EntityInterface:
getDataFieldValue : void
setDataFieldValue : mixed
getScheme : SchemeInterface
Тестовая реализация
SchemeInterface также хранит некоторые данные в памяти.
В продакшене, реализации интерфейсов хранят данные в
MySQL.
Теперь основной вопрос:
Сколько потребуется написать наборов тестов, если мне потребуется создать реализацию интерфейсов, которые хранят данные, в
Redis'е?
По моим подсчетам получается:
- Набор тестов для EntityInterface
- Набор тестов для SchemeInterface
- Набор тестов для EntityMysqlStorage
- Набор тестов для SchemeMysqlStorage
- Набор тестов для EntityRedisStorage
- Набор тестов для SchemeRedisStorage
Верно ли это?
Или достаточно только первых двух наборов?
И вообще, на верном ли я пути?
Спасибо.