Ну, начнем с JsUnit . Похоже, что вам больше интересно узнать о модульном тестировании.
Что вы получаете от юнит-тестирования (если все сделано правильно):
- Возможность обнаружения регрессий в вашем коде, как вы упомянули
- Менее болезненная интеграция, поскольку каждый фрагмент вашего кода уже протестирован сам по себе
- Четкая картина того, как ваш код ожидается (и не ожидается) будет использоваться
Модульные тесты должны касаться любого публичного метода в вашем коде. Иногда у вас может быть причина для тестирования частных методов, и я уверен, что вы можете решить, когда это может быть. Цель проста:
- Проверьте, что метод работает правильно с правильным вводом
- Проверьте, что метод работает правильно с ошибкой .
Во многих случаях ваши тесты должны определять функциональность ваших методов.
Иногда, когда люди пишут свои модульные тесты, они намеренно «заглушают» любой интегрированный код (то есть вызовы методов, которые возвращают другие данные из базы данных, файла или бизнес-логики) и заставляют их вместо этого возвращать статические данные. Это помогает вам чувствовать себя более уверенно, что вы тестируете только код, присутствующий в логике, которую вы тестируете.
Возможно, вы захотите прочитать для получения дополнительной информации о хороших и плохих методах модульного тестирования.
Редактировать: Я не знаю много об этом в Ruby on Rails, но вы могли бы взглянуть на то, что делают другие люди . В конечном счете, доступные вам инструменты и структура ваших тестов будут зависеть от вашей среды и языка.