0

如何编写测试来验证类或模块中是否存在常量?

例子:

module MyModule
  VERSION = "0.3.1"
end

我试过了

require 'test/unit'
require 'shoulda'
require "my_class"

class MyModuleTest < Test::Unit::TestCase
  should "have a Version constant" do
    # next two lines crash
    assert_respond_to MyModule, :VERSION
    assert_respond_to 'VERSION', MyModule
  end
end
4

1 回答 1

2

你会考虑使用Specular来实现更自然的工作流程吗,这意味着你可以使用任何在普通 Ruby 中工作的方法,因此你不需要记住很多额外的不需要的东西。

require 'specular'

module MyModule
  VERSION = "0.3.1"  
end  

Spec.new do
  check(MyModule).const_defined? :VERSION
end  

puts Specular.run


# =>   check(MyModule).const_defined? :VERSION
# =>   - passed

# => Specs:       1
# => Tests:       0
# => Assertions:  1

因此,使用普通的 Ruby,您可以:MyModule.const_defined? :VERSION
使用 Specular:check(MyModule).const_defined? :VERSION

没有太大的区别,因此没有什么可学习/记住/一次又一次地回忆的。

于 2012-11-28T20:16:58.277 回答