0

MongoMapper を Sinatra に接続したところ、テスト以外はすべて正常に動作しました。Rack Testing と Rspec がインストールされた Autotest があります。自動テストを実行するたびに、それは教えてくれます

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

私のmain.rbファイルで参照されているコード行は次のとおりです。

MongoMapper.database = 'testdb'

問題は何ですか?どうすれば修正できますか?

4

1 に答える 1

1

ライブラリで宣言された定数は、ライブラリが必要になった後requireでのみ表示されるため、Rubyで呼び出される順序に違いがあります。

RSpecを実行するときは、一般的なセットアップコードを1つの場所(spec_helper.rbファイル)に配置してから、個々の仕様(たとえば、仕様を指定する場合main.rb)に配置require 'spec_helperしてから require main.rb。各コードファイルに必要なライブラリが正しい順序で必要な場合は、仕様も問題なく実行されます。そうでない場合は、sの順序がrequire正しくないことを示しています。

于 2013-01-22T16:51:10.227 に答える