Здравствуйте, 0K, Вы писали:
0K>Заинтересовался сабжем... Но, честно сказать, практически не могу представить как сделать так, чтобы сабж был полезен и написание тестов было не сложнее написания самой программы.
0K>Попробуем рассмотреть на простом практическом примере. Предположим, нужно сделать систему для пополнения счета телефона.
0K>Упростим максимально и разделим на этапы (укажем только 4 первых шага):
0K>1. Ввод номера телефона и суммы пользователем (на сайте). 0K>2. Проверка существования номера (XML-запрос к сервису оператора). 0K>3. Проверка суммы (от ... до). 0K>4. Занесение операции в базу данных (ИД, номер телефона, сумма, статус 0 (не оплачено)) и возврат ИД
0K>Что нужно делать дальше? Какие тесты писать?
а)делаем моки для проверятеля номера телефона, проверятеля суммы и репозитария бд.
б)пишем тест который проверяет правильность реакции интерфейса на ввод корректных номера и суммы
в)пишем тест который проверяет правильность вызова метода репозитария для занесения данных в базу (корректность параметров метода)
д)пишем тест который проверяет правильность реакции интерфейса на ввод НЕкорректных номера и суммы
е)пишем тест проверятеля суммы
ж)пишем тест проверятеля номера номера телефона: подпихиваем ему различные XML-доккументы. Если проверятель телефона толлько выполняет запрос и возвращает XML, то тестить его не обзательно