【发布时间】:2019-12-26 11:37:10
【问题描述】:
我想使用 Minitest 测试我的 ruby gem。我不知道如何设置测试文件来测试命令行参数。我知道我的命令行参数将来自变量ARGV,但我不知道如何通过 Minitest 访问它。
我还需要知道是否需要 bin 文件夹中的可执行文件,或特定的 ruby 文件(在本例中,是一个名为 CLI.rb 的文件)。
This 答案是我在 Stackoverflow 上找到的最接近的答案,但答案似乎与我想要做的事情相去甚远,至少据我所知。
【问题讨论】:
-
如果你想做一个“黑盒”测试,你可以调用带有 shell 命令插值的可执行文件,例如反引号。要测试内部结构,您应该将 gem 源代码从测试加载到内存中。如果您的库引用 ARGV,也许您应该重构它以接收该值作为参数。这将使从测试中传递自定义值变得更加容易。
-
它不引用 ARVG,除非在需要
CLI.rb的单个文件中。该文件中的一行代码是CLI.new.run(ARGV)。除此之外,您是说我可以简单地在我的测试文件中要求CLI.rb并运行该文件以对其进行测试? -
是的,您可以在测试中致电
CLI.new.run(some_arguments_list)。