测试不适用于Sinatra中的MongoMapper

时间:2013-01-19 23:33:39

标签: ruby rspec tdd sinatra mongomapper

我将MongoMapper与Sinatra连接起来,除了测试之外,一切正常。我安装了机架测试和Rspec的自动测试。每当我运行自动测试时,它就会告诉我

/home/jason/ror/sbmongo/main.rb:11:in `<top (required)>': uninitialized constant 
MongoMapper (NameError)

以下是我在main.rb文件中引用的代码行。

MongoMapper.database = 'testdb'

问题是什么?如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在Ruby中通过require调用内容的顺序确实有所不同,因为在库中声明的常量只有在需要库之后才会显示

运行RSpec时,最好将常规设置代码放在一个位置 - spec_helper.rb文件 - 然后放在各个规范中(例如,在显示main.rb时){{1}然后然后 require 'spec_helper。如果每个代码文件都需要正确顺序所需的库,那么您的规范也会顺利运行。如果没有,则表明require main.rb s的顺序不正确。