我怎么能模仿Moose物体呢?

时间:2009-09-02 02:27:54

标签: perl mocking moose testing

Perl人在模拟Moose对象时会使用哪些策略,他们会将其作为类型约束属性注入其他Moose对象?

Test::MockObject::Extends似乎与穆斯不太合作。我需要将对象作为一个特定的包来祝福,所以一个普通的Test :: MockObject将不起作用。我相信其他人也有类似的困难。你是怎么解决的?

已在CPAN上的解决方案的额外分数。

2 个答案:

答案 0 :(得分:5)

嗯,我不是这方面的专家,但我要看的第一件事是Shaw Moore(Sartak)Test-MockOO

如果这对您不起作用,我会考虑使用Metaobject协议的强大功能并使用starrt手动构建Mock对象。查看Class :: MOP :: Class和Moose :: Meta :: Class,了解如何在运行时以编程方式覆盖特定方法和/或创建整个类。

如果这仍然不适合你,我会过去IRC并问。驼鹿的常春藤击球手在那里闲逛,我敢肯定他们中的一个遇到了这种情况。

答案 1 :(得分:1)

有点自我插件,但我写了http://search.cpan.org/~cycles/Test-Magpie-0.05/lib/Test/Magpie.pm,也许你会觉得这很有用。用它创建的模拟充当任何类,并且尽可能地完成每个角色。它根本不模拟特定的对象或类。可悲的是,CPAN的搜索有点垃圾,所以搜索“test mock”并没有在结果中显示它。

我还应该提一下,文档中没有大量的动机或示例代码,因此您可能希望检查一些测试: