我将MongoMapper与Sinatra连接起来,除了测试之外,一切正常。我安装了机架测试和Rspec的自动测试。每当我运行自动测试时,它就会告诉我
/home/jason/ror/sbmongo/main.rb:11:in `<top (required)>': uninitialized constant
MongoMapper (NameError)
以下是我在main.rb
文件中引用的代码行。
MongoMapper.database = 'testdb'
问题是什么?如何解决这个问题?
答案 0 :(得分:1)
在Ruby中通过require
调用内容的顺序确实有所不同,因为在库中声明的常量只有在需要库之后才会显示。
运行RSpec时,最好将常规设置代码放在一个位置 - spec_helper.rb
文件 - 然后放在各个规范中(例如,在显示main.rb
时){{1}然后然后 require 'spec_helper
。如果每个代码文件都需要正确顺序所需的库,那么您的规范也会顺利运行。如果没有,则表明require main.rb
s的顺序不正确。