我正在尝试测试一个 ruby 命令行脚本,但在 RSpec 3 中使用无 Cucumber Aruba 运行测试时遇到了麻烦。
一些奇怪的错误,一些明显的错误。
例如奇怪:
1) test does something
Failure/Error: run_simple("cli_test.rb -h", true)
ArgumentError:
wrong number of arguments (2 for 1)
# .../.gem/ruby/2.2.0/gems/aruba-0.6.2/lib/aruba/api.rb:632:in `assert_exit_status'
# .../.gem/ruby/2.2.0/gems/aruba-0.6.2/lib/aruba/api.rb:750:in `run_simple'
# ./spec/cli_test_spec.rb:17:in `block (2 levels) in <top (required)>'
查看代码,我什至看不到是什么触发了这个。尝试使用 Pry 或 Pry-byebug 来检查错误的 2 args 也不起作用(一大堆其他错误)。
然后,例如显而易见:
1) test does something
Failure/Error: check_file_presence(["bin/cli_test.rb"], true)
only the `receive` or `receive_messages` matchers are supported with
`expect(...).to`, but you have provided:
#<RSpec::Matchers::BuiltIn::BePredicate:0x007fb36c88d6b0>
# ... error lines ...
& 在这里,错误显然是正确的,Aruba 使用的是 Rspec 2 语法。
所以我加了
config.expect_with :rspec do |c|
c.syntax = [:should, :expect]
end
到我的 rspec 配置,但仍然无法正常工作。
有任何想法吗?提示?这个工作在任何地方的例子?
提前致谢。