0

と呼ばれるモデルをユニットテストしようとしていUserModelます。私のRSpecコードは次のとおりです。

# user_model.rb
require 'user_model'

describe UserModel do
   result = UserModel.add("test","test")
   result.should eq(1)
end

この行require 'user_model'はエラーを発生させます:

ERROR : `./user_model.rb:1: uninitialized constant ActiveRecord (NameError)`

クラスをインポートするためのその行UserModelですか?

4

2 に答える 2

2

Rails環境をテストシステムに含めないと、結果は予測できなくなります。典型的なテストにはtest_helper、少なくとも、デフォルトでRailsにロードされ、適切なデータベース接続をセットアップすることが含まれます。

で作成されたすべてのモデルにはrails generate model、カスタマイズ可能なサンプルテストが付属しています。

于 2013-02-11T03:52:06.877 に答える
1

メッセージは、定数を使用しているActiveRecordが、それを提供するライブラリがactiverecordロードされていないことを示しています。

RSpecの最新バージョンを使用している場合は、rspecジェネレーターを実行してrails g rspec:install、Rails環境(activerecordを含む)をロードする標準のspec_helperを作成していることを確認してください。あなたの一番上にあるのはuser_model_specで、必要なのはrequire 'spec_helper'

于 2013-02-11T03:53:19.507 に答える