А через просто spec?
spec mega_test.rb
--
Timur Vafin mailto:tim...@gmail.com
http://flatsourcing.com
А разделять может понадобиться только для отладки и т.п. (хотя есть autotest и
все такое)...
Ммм... Интересный конечно подход.
Но на сколько я понимаю, вы не должны в тесте писать заглушку для
метода, которого нет. В этом случае тест должен возвращать ошибку.
Т.е.:
* зафантазировал метод
* описал тест
* запустил тест, увидел ошибку
* написал метод
* запустил тест, увидел, что нет ошибки
* радоваться
http://blog.davidchelimsky.net/articles/2007/05/14/an-introduction-to-rspec-part-i
затем начинаем реализовывать методы и постепенно убираем стабы из
before
в итоге после написания всех методов у нас спецификация будет
выступать в роли тестов и проверит уже не стабы а реальные методы
Поругайте мои догадки пожалуйста кто как может, или согласитесь:)
слегка не так.
написать кучу _пустых_ спецификаций это нормально, спеки - лучшее
место, куда можно поместить требования
заполнять спеки и писать код, который будет их выполнять лучше
поэтапно.
стабы по прежнему не нужны :)
Попробуй и поймешь.
В текстовом файле тоже можно. Это олдскул - так в ТДД предлагалось делать.
Классическая книга Кента Бека. Актуальная до сих пор.
В БДД ты объединяешь описание и тесты - таким образом нету разрыва между тем
что нужно сделать и чем это делаемое будет тестироваться.
Отличия от ТДД - акцент на проектирование плюс более удобно писать тесты из-за
того, что не нужно помнить порядок аргументов (у кого-то из наших перцев в
блоге почитал).
--
Serhiy Boiko
CRIS-UANIC
Волшебство можно найти либо в файле
options_parser.rb в репозитории, либо сделав
spec -h
Код, который запускает спеку, на
которой курсор, в TextMate:
def run_focused(stdout, options={})
options.merge!({:files => [single_file], :line => ENV
['TM_LINE_NUMBER']})
run(stdout, options)
end
def run(stdout, options)
argv = options[:files].dup
argv << '--format'
argv << 'Spec::Runner::Formatter::TextMateFormatter'
if options[:line]
argv << '--line'
argv << options[:line]
end
argv += ENV['TM_RSPEC_OPTS'].split(" ") if ENV['TM_RSPEC_OPTS']
Dir.chdir(ENV['TM_PROJECT_DIRECTORY']) do
::Spec::Runner::CommandLine.run(argv, STDERR, stdout, false,
true)
end
end
Как видно, путь к цели именно тот самый
MK
В красивом dsl, в контекстах, в shared behaviours, в
самодокументированности, во многом.