Test::NoLoad あるモジュールが use されてたらこける
うちのプロジェクトではとあるモジュール使用禁止、とか、Moose 読まれんの嫌、とか。 なんかそういうのをテストで担保するためのモジュール Test::NoLoad 書いてみました。
test でやるんじゃなくて、実働してるアプリケーションでやる(もちろん開発環境だけとかですが)ようなアプローチもあるかと思いましたが、まあとりいそぎテストで実施。
check_no_load
function was exported from Test::NoLoad
use strict;
use Test::AllModules;
use Test::NoLoad;
BEGIN {
all_ok(
search_path => 'MyApp',
check => sub {
my $class = shift;
eval "use $class;1;";
},
);
}
check_no_load(qw/
Class::ISA
Pod::Plainer
Switch
Moose
Template
/);
上記の通り、Test::AllModules あたりとセットで使うのを想定してます。