JohnyDeath писал(а) 24. Ноября 2011 :: 17:07:Спасибо за ответ.
Я себе все примерно так же и представлял. Но мне интересно как конкретно это происходит, желательно с примером.
...
Можно пример?
Жень. Ты почти хочешь невозможного.
Примеры они очень конкретные.
Но я попробую:
Я "сабж" использую для тестирования функций общих модулей, если хочешь называй их библиотеки или для проверки корректности обновления или .. короче для того чтобы проверить "внутренности".
то есть (по сабжу)
0. У меня есть типовая/чужая конфигурация
0.1 Я решил добавить реквизит "Ромашка" к типовому Справочнику Тесть
1. я создаю тест в своем комплекте тестов ПроверитьСуществованиеРеквизитаРомашка()
2. запуская тестЫ - тесты падают: я же пока решил, а не добавил
3. Создаю реквизит Ромашка
4. запускаю тестЫ - тесты не падают
0. Я думаю что необходимо создать общий модуль РаботаСТестем и добавить туда функцию ПроанализироватьРомашкиТестей()
1. я создаю тест ПроверитьСуществованиеФункцииАнализРомашекТестей()
2. Прогоняю тестЫ: тесты падают - общего модуля нет, функции нет
3. создаю функцию.
4. прогоняю тесты - тесты не падают
0. я решил что функция анализРомашекТестя будет брать текущих Тестей и возвращать коллекцию Тестей с Ромашками или без Ромашек
0.1 прототип функции выглядит так ПроанализироватьРомашкиТестей(сРомашкей = Истина)
1. Пишу тест (последовательность)
1.1 Создать 20 элементов справочника Тесть с реквизитом Ромашка = Истина
1.2 Создать 30 элементов справочника Тесть с реквизитом Ромашка = Ложь
1.3.1 Тест - ПроверитьКоличествоТестьСРомашкой() = 20
1.3.2 Тест - ПроверитьКоличествоТестБезРомашки() = 30
1.4 Очистить справочник Тесть
и т.д.
P.S. когда мы около 1.5 года назад встречались с Федором - он мне сказал что библиотеку тестирования можно "в принципе" написать под любую платформу, так как Workflow известен
for each Test {preTest->test->afterTest}. Однако практика несколько сложней: что тестировать, как тестировать, что есть данные теста, а что есть данные настройки системы в целом - короче чем дальше в тестирование, тем толще партизаны.
P.S.S. Жень - для начала попробую простые вещи: загрузи cf в чистую базу, создай обработку которую назови тестирование: в ней создай три процедуры ПередТестом() Тест() ПослеТеста()
процедуру Тест() повесь на кнопку - ты будешь смеяться
кнТесткод процедуры кнТестНажатие
Цитата:ПередТестом()
Попытка
Тест()
ПослеТеста()
Исключение
Попытка
ПослеТеста()
исключение
ВызватьИсключение(""Ошибка очистки данных теста" + ОписаниеОшибки())
КонецПопытки
ВызватьИсключение(ОписаниеОшибки())
КонецПопытки
а в процедуре Тест() - попробуй сразу создай абонента "кодом", создай ему начисления, запусти расчет и проверь на ожидаемую сумму.
после этого, ты в поймешь что ты тестируешь - "сравнение расчета с ожидаемым".
затем создание абонента и запись начислений ты "уведешь" в ПередТестом() - не забудь добавить "очистку"
после этого... цикл почти бесконечный. сколько времени развивается конфа, столько времени и пишутся тесты.
P.S.S.S. Непонятно написал.... Торопился.