1

私は gem を作成しており、私のクラスの initialize メソッドは ActiveRecord モデルをパラメーターとして受け取ります。

これは Rails 関連の gem ではありません。

単体テスト (rspec) で、mysql に接続する単体テストを作成するにはどうすればよいですか?

database.yml ファイルを作成してから、単体テストのために資格情報などを入力する必要があるのは奇妙だと思います。

代わりに sqlite を使用する必要がありますか?

誰かが私がこれをどのように行うべきかの例を提供できれば、それは素晴らしいことです.

4

1 に答える 1

1

受信したオブジェクトが ActiveRecord::Base から継承されていることを伝えても、ActiveRecord オブジェクトは必要ないと思います。

代わりに、モック化された ActiveRecord::Base オブジェクトを使用することをお勧めします。必要な元のオブジェクトの代わりにモック化されたオブジェクトを使用することで、active_record オブジェクトの動作と状態をシミュレートでき、テストはデータベース接続を必要とせず、信じられないほど高速に実行できます。

ここでモッキング (理論) についてもう少し読むことができます: http://en.wikipedia.org/wiki/Mock_object

ここで(rspecで)練習してください: http://rubydoc.info/gems/rspec-mocks/frames

それが役に立てば幸い!

于 2012-09-28T20:42:34.190 に答える