使用RSpec测试纯Ruby binmy_app.rb应用程序?

使用RSpec测试纯Ruby binmy_app.rb应用程序?,第1张

概述我有一个用纯 Ruby编写的命令行(NON-RAILS)应用程序,我通过Cucumber和RSpec驱逐出去.它遵循lib,bin,spec和feature目录的典型应用程序层次结构. 到目前为止,我已经遵循了编写失败的Cucumber特性/场景的传统过程,下载到RSpec以驱逐支持的lib文件,然后让场景通过. 不幸的是,当驱逐出“bin / my_application.rb”中的主应用程序入 我有一个用纯 Ruby编写的命令行(NON-RAILS)应用程序,我通过Cucumber和RSpec驱逐出去.它遵循lib,bin,spec和feature目录的典型应用程序层次结构.

到目前为止,我已经遵循了编写失败的Cucumber特性/场景的传统过程,下载到RSpec以驱逐支持的lib文件,然后让场景通过.

不幸的是,当驱逐出“bin / my_application.rb”中的主应用程序入口点时,这似乎并不那么直截了当.对我来说主要的问题是我没有在RSpec中描述一个类,它是一个顺序的Ruby脚本,用于管理应用程序的类和通过命令行参数和选项进行初始化.

“bin / my_application.rb”只是一个小的shell执行包装器,用于解析命令行选项并将它们作为初始化程序选项传递给我的主应用程序类.我还想测试bin脚本的行为(例如MyApp.should_receive(option_a).with(parameter)).

有什么建议/意见/建议吗?这是驱逐命令行Ruby脚本行为的正常测试策略吗?

提前致谢.

解决方法 我不确定我完全理解你在问什么,但我会说,如果你想使用RSpec测试你的参数传递它应该很容易做到.假设你有你的包装脚本:

# my_application.rbcommand = Command.newcommand.foo = true if ARGV[0]command.bar = true if ARGV[1]command.baz = false if ARGV[2]command.make_dollars(1000000)

只需将它混合起来,使其成为适合测试的类.

# command_runner.rbclass CommandRunner  def run(args,command = Command.new)    command.foo = true if args[0]    command.bar = true if args[1]    command.baz = false if args[2]    command.make_dollars(1000000)  endend# my_application.rbCommandRunner.new.run(ARGV)

现在你唯一没有测试过的是run命令的默认参数和文件my_application.rb中的一行

希望有所帮助.布兰登

总结

以上是内存溢出为你收集整理的使用RSpec测试纯Ruby bin / my_app.rb应用程序?全部内容,希望文章能够帮你解决使用RSpec测试纯Ruby bin / my_app.rb应用程序?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1278561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存