Тестирование стратегии для большого приложения с несколькими публичными методами? - PullRequest
2 голосов
/ 06 января 2009

Я работаю над проектом, который я действительно не знаю, как провести юнит-тестирование. Это ненавязчивая основанная на тегах структура для связывания событий между моделями, представлениями и делегатами в системе графического интерфейса.

По сути, у вас есть один большой json-файл, который описывает все события, обработчики событий и привязки. Пользователь создает свои модели, представления и делегаты, которые не имеют представления о структуре. JSON-файл передается методам init (), затем платформа создает все необходимые экземпляры и заботится обо всех привязках, прослушивателях и т. Д.

У меня две проблемы:

1) В фреймворке в основном только один публичный метод, все остальное передается через разметку в файл JSON. Поэтому у меня очень маленькая тестовая поверхность для большого и сложного приложения.

2) Одна из главных ролей приложения - создание экземпляров классов, если они не были созданы ранее и кэшированы. Это означает, что мне нужны реальные классы в моем тестовом коде, простые насмешки не собираются его сокращать.

В данный момент я рассматриваю пару решений. Первый - начать тестирование приватных методов. Второе - просто заглушить конструкторы.

У кого-нибудь еще есть идеи?

Ответы [ 2 ]

2 голосов
/ 06 января 2009

1) Есть в основном только один публичный метод в рамках, все остальное сообщается через разметку в файле JSON. Поэтому у меня очень маленькое тестирование поверхность для того, что является большим и сложное приложение.

Как это возможно? вся эта сложная структура хранится в одном классе? если участвуют несколько классов, как они обмениваются информацией без открытых методов?

Кстати, конструктор тоже публичный метод.

Вы просто передаете объект JSON? это будет слишком тесно связывать вашу структуру с источником информации. У вас должен быть один класс, анализирующий JSON, а остальные общаются без знания источника данных (через общедоступные методы тестирования).

1 голос
/ 06 января 2009

перечислить функции (сценарии, варианты использования, как вы хотите их называть) системы и установить данные / интегрированные среды JSON для каждой функции. Это ваши юнит-тесты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...