testing
metacpan.orgちょうどいいデフォルト値が見当たらないので、このキーは各環境で適宜、定義せよ、という風にしたい。interface みたいなかんじ。 use strict; use warnings; use Test::More tests => 2; use Test::Fatal qw(exception); { package My::Config…
ソフトウェア開発におけるテストは仕様の表現のひとつという風にも扱われるなど、重要な役割を担う一方で、テスト自体の妥当性の検証や保証は少なくて、こういう不安定な土台の上でいろいろやっていいのか、という気がする。レビューする時には、まずテスト…
テンプレートエンジンNight というイベントで Text::Xslate を使ってテンプレートの静的解析とリファクタリングを行った知見について発表した。 テンプレートエンジンを使ってこういうことができる、というような内容から、テンプレートエンジン作った・作っ…
Test::mysqld とは Perl に Test::mysqld というモジュールがある。テストを実行するときに MySQL のインスタンスをよしなに起動してくれる。同じテストスイート (プロジェクト、リポジトリ) を並行して実行する場合、データベースの接続先は同じなので複数…
config.ru に map "/assets" do run Sinatra::Application.sprockets end とか書いてもテストでは config.ru が暗黙のうちに読まれることはないのでマウントされず必ず 404 になる。テストで使う Rack アプリケーションのインスタンスを渡す際にも map すれ…
aereal/dotfiles · GitHubいわゆる dotfiles, シェルやエディタの設定の類を GitHub に置いてある。リポジトリ下にあるファイルを (ホームディレクトリに) インストールする Rake タスクを定義してあるのだけれど、このタスクが期待した動作をするかテストを…
expect.pl sub expect (&@) { my ($effector, $comparator, $state) = @_; my ($before, undef, $after) = map { $_->() } ($state, $effector, $state); cmp_ok $before, $comparator, $after; } sub make_changes (&) { my ($actual) = @_; ("!=", $actual…
Test Anything Protocol (TAP) というごく単純なテスト出力の仕様がある。Perl の Test::Harness が起源ではあるけれど、本当に単純なので特定の言語に依らず扱える。Io という、これもまたごく軽量で小さな言語があって、もちろんテストを書きたいのだけれ…
「こういう機能を (将来的に) 実装する」っていうの、いままでTODOとかにベタ書きすることもあったけど、そのままテストケースとして書いたほうがいい気がする。たとえばRSpecだと、describeで検証したい機能をあぶり出してから、さらにcontextで条件を切り…