3

私は現在、Redis DB、EventMachine、および Sinatra (軽量 API 用) で構成される Ruby プロジェクトに取り組んでいます。私たちはテストに RSpec を使用しており、この時点まではすべてうまくいっています。

ただし、MySQL データベースと (最低限) 対話を開始する必要があります。私たちは ActiveRecord の道を行くことに決めました (とても素晴らしいという理由だけで! )。今のところすべて順調に進んでいます。ただし、テストで小さな問題が発生しています。RSpecを使用mock_modelしてオンラインでいくつかのリソースを見つけましたが、取得し続けます:mock

undefined method `mock_model'
undefined method `mock'

エラー。Railsフレームワーク全体をインストールせずにこれらを機能させるには、どのgemを使用する必要がありますか(やり過ぎのようです)。

また

AR モデルをモックするために、他にどのようなモック/スチューブ メソッド/gem を使用する必要がありますか? 次のような構文の柔軟性を本当に楽しんでいます。

@user = double(NS::UserAccount)
@car = double(NS::Car)
NS::UserAccount.stub(:find).with(@valid_user_id).return(@user)
NS::Car.stub(:find).with(@valid_car_id).return(@car)



アップデート

私の Gemfile は次のようになります。

group :test do
  gem 'rspec',                '~> 2.8.0'
  gem 'rspec-expectations',   '~> 2.8.0'
  gem 'rspec-mocks',          '~> 2.8.0'      
  gem 'autotest-standalone'
  gem 'em-spec',              '~> 0.2.6'
  gem 'rack-test',            '~> 0.6.1'
  gem 'factory_girl',         '~> 3.1.0'
end

また、spec_helper.rbファイルの上部には、次のものがあります。

require 'bundler/setup'
Bundler.require(:test, :development)
4

1 に答える 1

0

Active Record モデルの場合、RSpec には methodmock_modelがあり、すべての Ruby on Rails モデルに共通のいくつかのスタブを自動的に作成し、ハッシュを受け入れます。

したがって、Rails の外部で使用するには、Active Record とrspec-rails拡張機能mock_modelを接続する必要があります。

ここmock_modelが定義されている場所を確認できるようにします。

于 2012-04-16T12:27:52.230 に答える