最近一直在看ruby。今天开始着手写一个ruby的单元测试。没想到第一行就遇到了一个问题。
结果却报错: Test is not a module.我找到了报错assertionfailederror.rb的那行代码:
就是在第一行定义module的时候就报错了。这是怎么回事呢?
于是我开始google了,但是找了半天竟然没有结果。这个时候,我的目光忽然定格在了这个名字上:Test。我刚刚是定义了一个类Test。不会是冲突了吧。
我是在irb中玩的,所以忘记了刚才定义的东东了。于是重新打开了一个irb,输入require 'test/unit',这次正常了。
问题解决了,但是背后的秘密我还没搞清楚。继续学习中。
require 'test/unit'结果却报错: Test is not a module.我找到了报错assertionfailederror.rb的那行代码:
module Test
module Unit
# Thrown by Test::Unit::Assertions when an assertion fails.
class AssertionFailedError < StandardError
end
end
end就是在第一行定义module的时候就报错了。这是怎么回事呢?
于是我开始google了,但是找了半天竟然没有结果。这个时候,我的目光忽然定格在了这个名字上:Test。我刚刚是定义了一个类Test。不会是冲突了吧。
我是在irb中玩的,所以忘记了刚才定义的东东了。于是重新打开了一个irb,输入require 'test/unit',这次正常了。
问题解决了,但是背后的秘密我还没搞清楚。继续学习中。
作者在进行Ruby单元测试时遇到Test不是一个模块的问题,并发现是由于自己先前定义了一个名为Test的类导致的命名冲突。
106

被折叠的 条评论
为什么被折叠?



