Nik*_*nko 8 perl moose test-class
我正在重构一个由同事建立的测试套件,并希望Test::Class[::Most]在这样做时使用.在我开始时,我发现我可以使用一些Moose角色来解码代码.但是,它似乎不太可能 - 我收到像这样的错误消息:
Prototype mismatch: sub My::Test::Class::Base::blessed: none vs ($) at
/usr/lib/perl5/vendor_perl/5.8.8/Sub/Exporter.pm line 896
Run Code Online (Sandbox Code Playgroud)
所以问题是:我可以Moose一起使用Test::Class,如果是,如何使用?
PS:代码是这样的:
package My::Test::Class::Base;
use Moose;
use Test::Class::Most;
with 'My::Cool::Role';
has attr => ( ... );
Run Code Online (Sandbox Code Playgroud)
Sch*_*ern 12
Test :: Deep(通过Test :: Most通过Test :: Class :: Most加载)正在导出它自己blessed以及它可能不应该的许多其他东西.它没有记录.穆斯也出口比较常见Scalar::Util::blessed.由于Scalar::Util::blessed相当普遍,Test :: Deep不应该导出自己的不同blessed.
不幸的是,没有好办法阻止它.我建议在My :: Test :: Class :: Base中执行以下hack:
package My::Test::Class::Base;
# Test::Class::Most exports Test::Most exports Test::Deep which exports
# an undocumented blessed() which clashes with Moose's blessed().
BEGIN {
require Test::Deep;
@Test::Deep::EXPORT = grep { $_ ne 'blessed' } @Test::Deep::EXPORT;
}
use Moose;
use Test::Class::Most;
Run Code Online (Sandbox Code Playgroud)
并将问题报告给Test :: Deep和Test :: Most.
| 归档时间: |
|
| 查看次数: |
1060 次 |
| 最近记录: |