我有一个用纯Ruby编写的命令行(NON-RAILS)应用程序,我通过Cucumber和RSpec驱动。它遵循lib,bin,spec和feature目录的典型应用程序层次结构。到目前为止,我已经遵循了编写一个失败的Cucumber特性/场景的传统过程,下降到RSpec驱动出支持的lib文件,然后让场景通过。使用RSpec测试纯Ruby bin/my_app.rb应用程序?
不幸的是,当驱除“bin/my_application.rb”中的主应用程序入口点时,这看起来并不那么简单。我的主要问题是我没有在RSpec中描述一个类,它是一个连续的Ruby脚本,用于管理应用程序的类并通过命令行参数和选项进行初始化。
“bin/my_application.rb”只是一个小的shell执行包装,用于解析命令行选项并将它们作为初始化程序选项传递到我的主应用程序类。我仍然想测试bin脚本的行为(例如MyApp.should_receive(option_a).with(parameter))。
任何建议/想法/建议?这是否是驱除命令行Ruby脚本行为的正常测试策略?
在此先感谢。
在command_runner.rb中不应该是'if args [0]'等等吗? – johnf
糟糕!你是对的。要么工作,但...感谢注意。 – bcarlso