2008-06-05から1日間の記事一覧

Test::Classでヘルパースクリプトを作らずにテストを実行する

ベースクラス package My::TestBase; use strict; use warnings; use base 'Test::Class'; INIT { Test::Class->runtests } 1; テストクラス package My::Dog::Test; use base qw/My::TestBase/; use Test::More; sub test_bark : Test(2) { is &#39…

xUnitでの単体テスト

単体テストでxUnitを使う場合、クラスに対して1つのテストクラスを作るのが一般的です。例えば、Dogクラスがあれば、Dog::Testというクラスを作り、Dogの振る舞いに対してテストを書きます。クラスの振る舞いごとに、テストメソッドを書いていきます。テスト…

プラグインのあるべき姿を考えてみる - その2

プラグインの仕組みを少し考えてみます。フックポイントにPluginの処理を差し込んで、フレームワーク側の処理に手を加えるものは、いわゆる世間一般にプラグインと言われているものなんじゃないかと思います。これはMooseのRoleのmethod modifireは相性はよ…

利用者視点と開発者視点

今回の一連のプラグインの話を見ていても、作る側の視点と使う側の視点で、大分話の視点が違っているのが印象的です。利用者視点だと、 副作用があっても、副作用のないものを作ってから使うなんてことはそもそもしたくない 副作用があっても、多くのプラグ…

Catalystプラグインが乱立した理由について

Catalyst::Plugin::* になにを置いていいのか、というのがわかりにくかったというのはある。今は方針があきらかになってるからいいけど。View にたいするプラグインも、Controller にたいするプラグインも、Request も Engine も Context も。ぜんぶ Catalys…

現状のController拡張のベストプラクティスから次のプラクティスを考える

Controllerの拡張の現状のベストプラクティスということで、 http://search.cpan.org/src/JCAMACHO/Catalyst-Controller-FormBuilder-0.04/lib/Catalyst/Controller/FormBuilder.pm があるよ!というのをcharsbarさんに教えてもらいました。 メソッドバッテ…