11

Perl の人々は、型制約属性として他の Moose オブジェクトに注入する Moose オブジェクトをモックするときに、どのような戦略を使用しましたか?

Test::MockObject::Extendsは Moose でうまく動作しないようです。ただし、オブジェクトを特定のパッケージとして祝福する必要があるため、バニラの Test::MockObject は機能しません。他の人も同じように苦労したことがあると思います。どのように解決しましたか?

すでに CPAN にあるソリューションの追加ポイント。

4

2 に答える 2

5

私はそのようなことの専門家ではありませんが、最初に見るのは Shaw Moore (Sartak) のTest-MockOOです。

これがうまくいかない場合は、Metaobject Protocol の機能を使用して、Mock オブジェクトを手動で構築することを検討します。Class::MOP::Class と Moose::Meta::Class を見て、特定のメソッドをオーバーライドしたり、実行時にクラス全体をプログラム的に作成したりする方法を確認してください。

それでも問題が解決しない場合は、IRC を無視して質問します。ヘラジカのヘビーヒッターがそこにたむろしており、そのうちの1人がこの状況に遭遇したと確信しています.

于 2009-09-02T16:44:24.607 に答える
2

少し自己プラグですが、私はhttp://search.cpan.org/~cycles/Test-Magpie-0.05/lib/Test/Magpie.pmを書きました。これが役に立つかもしれません。これで作成されたモックは、任意のクラスとして機能し、可能なすべての役割を果たします。特定のオブジェクトやクラスをまったくモックしません。悲しいことに、CPAN の検索は少しゴミなので、"test mock" を検索しても結果に表示されません。

また、ドキュメントには大量の動機やサンプルコードが含まれていないことにも言及する必要があるため、いくつかのテストを確認することをお勧めします:

于 2011-01-18T19:12:41.623 に答える