Pull to refresh

Comments 17

Давно хотел заняться юнит тестированием, но как-то руки не доходили. Ждем продолжение…
:) Какого продолжения вы ждете?:) В статье предложена методика разработки юниттестов — если она вам понравилась, берите и используйте на здоровье.

Если и будет какое-то продолжение, то исключительно по возможностям мок-фреймворка Rhino Mocks.
Эх… только единицы разработчиков в полной мере пользуются TDD :( Возможно, если бы все руководствовались бы такой методикой, то дырявого ПО было бы гораздо меньше.
Я стараюсь сделать мир лучше:) Вот своих коллег-разработчиков постоянно идеологически обрабатываю. Вот еще и статью написал — может, поможет кому:)
Подготовить какую никакую матбазу и основываясь на ней делать дальнейшие выводы — это сильно и неожиданно.
А по-моему это должно быть стандартным подходом. Осознал, сформулировал, доказал (обосновал) — затем уже сделал. А не «показалось — сделал — переделал — переделал — переделал».
тут скорей не матбаза, а запись обывательских рассуждений матсимволами
Хм. Это хорошо, плохо? Что плохого в том, что эти «матсимволы» помогли мне найти результат и определить методику?
это нормально
если насобачиться, лаконичнее получается
но благодарных слушателей станет меньше
Специально для благодарных слушателей приводится интересный пример:) Спасибо за отклик, btw
Это хорошо, но специфично. Все же люди как то больше ложками и поварешками мыслят.
Статью Вашу не понял, но посмотрите QuickCheck.

Там небольшой DSL для
— генерации входных данных
— указания свойств функции
— автоматического проведения тестов
Спасибо, погляжу:)
$a(z_0)$ или $a(h, x_0, z_0)$?
т.е. ассерт зависит только от конечного результата?
Я привел первый случай, потому как важно определить конечный результат. Почему важно? Чтобы не допустить ошибку в логике f(x). $a(h, x_0, z_0)$ — мне, если честно, не совсем понятен смысл этой конструкции. Дополнительные ассерты всего и вся? В том числе и функциональности теста? Чтож, можно и так — добавляется пятый шаг, на котором программист «усиляет» проверки (если они уместны).
правильней так было бы: $a_{h}(x_0, z_0)$

потому что функция проверки корректности зависит от проверяемого отображения, а результат её выполнения — ещё и от входных и выходных данных
Хм. Результат выполнения выдает z0. Т.е. опять же, h(x0) = z0 — это следует из определения функции, а сама конструкция определяет юнит-тест. Поэтому в конечном итоге все равно требуется только a(z0). Если честно, я не вижу смысла писать ассерты на код в h(x) — опять, из выведенного в статье h(x) = f(m(x)), а моки — не изменяют данные. Посмотрите в код, шаг 3, определяется мок, выдающий данные через заглушку ITopologyService. Он не изменяет данные, он их выдает в тестируемый класс как результат вызова метода ITopologyService.
Sign up to leave a comment.

Articles