2009-09-02 33 views
10

當嘲笑Moose對象時,Perl人會使用什麼策略將他們注入到其他Moose對象中作爲類型約束屬性?我該如何模擬駝鹿物體?

Test::MockObject::Extends似乎沒有與穆斯打得很好。我需要該對象祝福作爲一個特定的包,儘管如此香草Test :: MockObject將無法正常工作。我相信其他人也有類似的困難。你是如何解決它的?

已在CPAN上的解決方案的附加點。

+0

不知道回答你自己的問題的政策是什麼,但我發現在CPAN上的Test::Mock::Class工作得很好。所以我在這裏發表評論。 – 2009-09-03 00:42:06

+0

hrmmm哎呦:Test :: Mock :: Class http://search.cpan.org/~dexter/Test-Mock-Class-0.03/lib/Test/Mock/Class.pm – 2009-09-03 00:42:48

+2

「你叫* that * an對象?這太可笑了,我的祖母可以做出比這更好的對象,你永遠不會成爲任何東西,駝鹿!「 :-P – 2009-09-03 09:55:43

回答

5

嗯,我不是這方面的專家,但我首先看的是肖摩爾(Sartak)Test-MockOO

如果這對你不起作用,那麼我會考慮使用Metaobject協議的強大功能和starrt手動構建Mock對象。查看Class :: MOP :: Class和Moose :: Meta :: Class,瞭解如何以編程方式在運行時重寫特定方法和/或創建整個類。

如果這仍然不適合你,我會擺脫IRC並詢問。麋鹿常常在那裏呆着,我確信其中一個遇到了這種情況。

+3

如果該模塊已經在CPAN上,我會給你勾號。看起來它會完成這項工作。 – 2009-09-03 00:40:32

1

位自我插件,但我寫了http://search.cpan.org/~cycles/Test-Magpie-0.05/lib/Test/Magpie.pm,也許你會發現這有用。由此產生的嘲諷像任何階級一樣起作用,並儘可能地發揮每一個角色。它根本不嘲笑特定的對象或類。令人遺憾的是CPAN的搜索有點垃圾,所以搜索「測試模擬」並沒有在結果中顯示出來。

我還要提到的是,文件不包含一個巨大的動機或示例代碼的量,所以你不妨檢查一下一些測試: