Я пишу команду командной строки, но хочу, чтобы она была TDD. Я буду создавать и удалять файлы, и мне было интересно, есть ли тестовый камень для песочницы или что-то в этом роде. Я использую ruby и rspec.среды тестирования тестовой среды существуют для приложения командной строки TDD'ing
ответ
В зависимости от того, что вы пытаетесь сделать, но я тестирую большую часть своей командной строки Ruby, издеваясь над файловой системой и STDIN/STDOUT. Использование инъекции зависимостей я часто в конечном итоге с чем-то вдоль этих линий:
describe Add do
it 'writes the result to standard out' do
console = mock('STDOUT')
console.should_receive(:puts).with('5')
Add.new(console).execute(3,2)
end
end
class Add
def initialize(out = STDOUT)
@out = out
end
def execute(command_line_args)
@out.puts(command_line_args.inject(:+))
end
end
Add.new.execute(ARGS)
При использовании значения по умолчанию можно вводить в тесте, но оставить его из кода производства.
Надеюсь, что это поможет!
Brandon
Шаблон, вырабатываемая генератором newgem
install_cucumber
использует шаблон, который мне нравится совсем немного. Посмотрите на поддержку/env.rb и поддержки/common.rb файлов создает:
- https://github.com/drnic/newgem/blob/master/rubygems_generators/install_cucumber/templates/features/support/env.rb.erb
- https://github.com/drnic/newgem/blob/master/rubygems_generators/install_cucumber/templates/features/support/common.rb
Использование его в тесте выглядит следующим образом:
in_tmp_folder do
# The current directory is now a generated tmp folder.
# If you stick to relative paths, everything you do in here should be safe
end
Файлы, ссылки на которые приведены выше, предназначены для использования в тестах огурца, но они могут быть легко адаптированы к любой используемой структуре. ENV.rb выше удаляет папку tmp перед началом каждого теста.
Вы также можете ознакомиться с драгоценным камнем sandbox
.
gem install sandbox
Пример использования здесь: https://github.com/bdimcheff/sandbox
- 1. Ветвянная стратегия для тестовой среды
- 2. Настройка дублирующей тестовой среды mongodb
- 3. Конфигурация Elasticearch для тестовой среды
- 4. Настройка среды веб-тестирования
- 5. Постоянная настройка переменных среды для среды командной строки VC
- 6. Расширение переменных среды для командной строки
- 7. resque-pool по умолчанию для тестовой среды
- 8. Обнаружение «тестовой» среды в Foxx
- 9. Проверка/тестирование тестовой среды Google Analytics?
- 10. Quartz Scheduler для тестовой среды не работает
- 11. уничтожить datomic db для тестовой среды?
- 12. ENV переменные не установлены для тестовой среды
- 13. Rspec - где дополнительная конфигурация для тестовой среды?
- 14. Создание тестовой среды с небольшими моделями Spacy
- 15. Параметры командной строки тестирования
- 16. Получить переменные среды пользователя из командной строки
- 17. Переменные Makefile из командной строки и среды
- 18. Создание тестовой Canoe среды с использованием C#
- 19. Какие альтернативные среды существуют для строительства проектов?
- 20. Свойство тестовой среды Spring, указывающее тестовый контекст
- 21. Создать базу тестовой среды в ruby
- 22. параметры командной строки для транспортиратора для указания среды
- 23. Paypal стандартная выписки из тестовой среды в
- 24. Настройка тестовой среды BizTalk от производства
- 25. Воздушно-десантный GET из тестовой среды
- 26. Автоматизация управления загрузкой kendoUI с использованием тестовой среды codedUI
- 27. Rails 3 Rake Clone Database для тестовой среды
- 28. Настройка среды для тестирования в Python
- 29. AliPay песочница среды (API для тестирования)
- 30. с использованием loopback для среды тестирования
Что заставляет вас сказать, что вы не можете использовать RSpec для командной строки приложения? –
Извините, я написал свой вопрос в спешке. я имел в виду попросить любую среду SANDBOX для TDD. меняя вопрос. Прости. – Brand
Не уверен, что именно вы ищете - что бы вам предоставили «песочницу из песочницы»? Ю. уже может читать/писать файлы. –