如何编写测试以验证类或模块中是否存在常量?
示例:
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
答案 0 :(得分: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
并使用高光:check(MyModule).const_defined? :VERSION
没有太大的区别,因此无需一次又一次地学习/记忆/回忆。