我已经使用Test::Unit和Mocha编写了单元测试。我正在使用“期望”来模拟我正在测试的类中的方法,并且我想检查某个参数是否传递到对象中:
service.expects(:get).once.with(path, has_key('t')).returns([])
在我的开发系统上,这运行得很好。在我同事的计算机以及 Travis CI 服务器上,单元测试失败并出现以下错误:
NoMethodError: undefined method `has_key' for #<FloxTest:0x000000036d4770>
Mocha 应该添加到单元测试的所有其他方法也是如此,例如“mock()”方法。
我知道摩卡对进口订单很挑剔。我在“测试/单元”之后导入了它,但是:
require 'test/unit'
require 'mocha/test_unit'
如果有人需要更多上下文,完整的测试文件在这里。其实完整的项目是开源的,而且是一个比较小的项目:GitHub;完整的错误日志可以在Travis CI上看到。
我对我可以尝试什么没有更多的想法。我们甚至确保我的同事拥有与我完全相同的 gem 版本;并且 Ruby 版本也是相同的。
在此先感谢 Ruby Guru 提供的任何帮助,我将不胜感激!