1

私はレール開発にほとんど慣れていません。私は現在、Avdi Grimm の Objects on Rails を読んでいて、Rails アプリで #SOLID デザインを使用することで、混乱した読み取り不能なコードやデザインを作成するいくつかの規則を強制されるのではなく、.

nulldb をセットアップして、アプリケーションのビジネス ロジックをテストする高速仕様で使用したいのですが、動作させることができません。ここのnulldb GitHubページでインストールガイドを読みました-> https://github.com/nulldb/nulldb。activerecord-nulldb-adapter gem をインストールして Gemfile にも入れ、bundle install コマンドを実行したので、完全にインストールされました。高速仕様で使用する spec_helper_lite.rb ファイルがあるので、そこに nulldb をセットアップすることをお勧めします。私のspec_helper_lite.rbファイルのnulldb部分のコードは次のとおりです。

require 'nulldb_rspec'

def setup_nulldb
    schema_path = File.expand_path("../db/schema.rb", File.dirname(__FILE__))
    ActiveRecord::Base.establish_connection(:adapter => :nulldb,
                                                        :schema => schema_path)
    NullDB.nullify(:schema => schema_path)
end

def teardown_nulldb
    NullDB.restore
end

次に、高速スペックでこの spec_helper_lite.rb を必要とし、スペックのメソッドの前後でセットアップとティアダウンの nulldb メソッドを呼び出します。仕様を実行すると、 Uninitialized Constant ActiveRecord::ConnectionNotEstablished (NameError) というエラーが表示されます。setup_nulldb でその Establish_connection 行を削除するなど、さまざまなことを試しましたが、同じエラーが発生します。何が起こるかを確認するためだけに、spec_helper_lite で「active_record」を要求したところ、NullDB モジュールで「undefined method nullify」というエラーが発生し、active_record が必要なために仕様が完全に遅くなったことが明らかになりました。nulldb をセットアップする方法について多くのことを検索しましたが、この方法でセットアップする方法について説明したものはすべて説明されていましたが、うまくいきません。nulldb バージョン 0.2.1、rails 3.0.0、および rspec 2.0.1 を使用しています

これを正しく設定する方法についてご協力いただきありがとうございます。前もって感謝します。

サム

4

1 に答える 1

1

私は同様の問題を抱えていました(ただし、レールに依存しないminitestとactiverecordを使用しています)。私はあなたが言及したのと同じことをすべて試しました。rubygems にあるものをそのまま使用していたことがわかりました。github から直接プルするように Gemfile を更新すると、問題が解決したようです。

group :development, :test do
  gem 'activerecord-nulldb-adapter', :git => 'git://github.com/nulldb/nulldb.git'
end

bundle installアップデートしたらまたやりたくなります。

于 2012-06-20T16:03:38.587 に答える