私はrspecsを実行している多形関連のモデルを持っています。 テストでは、ポリモーフィックフィールドが、いくつかのフィールド(名前など)を持つモデルを指し示す必要があります。レールテストでは、テスト環境でのみモデルを作成してください。
私は既存の(複雑な)モデルを使用しない方がいいので、私の主なモデルが指摘できる新しい単純なモデル(テストでのみ存在する)を何とか作り出すことを考えていました。
これを行う方法はありますか? 他のモデルに依存しているモデルをテストする他の方法はありますか?
私はrspecsを実行している多形関連のモデルを持っています。 テストでは、ポリモーフィックフィールドが、いくつかのフィールド(名前など)を持つモデルを指し示す必要があります。レールテストでは、テスト環境でのみモデルを作成してください。
私は既存の(複雑な)モデルを使用しない方がいいので、私の主なモデルが指摘できる新しい単純なモデル(テストでのみ存在する)を何とか作り出すことを考えていました。
これを行う方法はありますか? 他のモデルに依存しているモデルをテストする他の方法はありますか?
問題が解決 - 'モカ' 宝石を使用します。テストでは
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
、単に行うことができます。
class MockUser {
# Stuff
}
comment = Comment.create!.expects('commentable').returns(MockUser.new)
は今、それは単に動作します:
comment.commentable.name
を
期待どおり、テストは独立している必要があります。
ここでは、スタブとモックが表示され、進行するRailsの方法です。
テスト専用のモジュールを作成したい場合(それはスタブの役割です)、ルビクラスとモジュールが実行可能であることを思い出させるだけです。
は、だから、単に行うことができます:
if Rails.env.test?
module Foo
...
end
end