11

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

Test::MockObject::Extends似乎不太适合 Moose。我需要将该对象作为一个特定的包进行祝福,但香草 Test::MockObject 将不起作用。我相信其他人也有类似的困难。你是怎么解决的?

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

4

2 回答 2

5

好吧,我不是这类事情的专家,但我首先要看的是 Shaw Moore (Sartak) 的Test-MockOO

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

如果这仍然不适合您,我会绕过 IRC 并询问。驼鹿重击手在那里闲逛,我敢肯定其中一个已经遇到这种情况。

于 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 回答