2013/02/12

Test::MethodName メソッド名をちぇっくちぇっくちぇっく

Test::NoLoad check_no_load とかいうメソッド書いた翌日に check_xxx がなんでダメなのか とかいうエントリーが TL に流れてきて涙目になった bayashi ですこんばんわー~。

涙でエディタが見えなくて苦労しましたが、じゃあ、ってんで 「check_XXX っていうメソッドダメ!」 みたいなのをテストできるモジュール書いてみました。

https://github.com/bayashi/Test-MethodName

use Test::MethodName;

all_methods_ok(
    'MyApp' => sub {
        my $method = shift;
        return ( $method =~ m!check! ) ? undef : 'pass';
    },
);

MyApp 以下のモジュールすべてのメソッド名に対して、コードリファレンスを実行します。 実行結果は Test::Moreok に渡されます。

ついでに、一個のモジュールだけをテストする method_ok($module => sub { 'pass' }) もあります。

Perl::Critic::Policy とかでやる方がいいかなーとか思いましたが、ちゃちゃっと書けなかったので、いくつかのモジュールからコードを拝借してゴリっと書いてみました。

たぶんどっかにあるような気もする。

サイト内検索