私はこの質問をするのは少し恥ずかしいと感じますが、私は不思議です。私は最近、ストアのログファイルを読み込んでデータベースに情報を保存するスクリプトを(モジュールでコードを整理することなく)書きました。このスクリプトはscript.plと呼ばれ、Perl:テストの定義は何ですか?
while (<$infile>) {
if (/item_id:(\d+)\s*,\s*sold/) {
my $item_id = $1;
$item_id_sold_times{$item_id}++;
}
}
my @matched_items_ids = keys %item_id_sold_times;
my $owner_ids =
Store::Model::Map::ItemOwnerMap->fetch_by_keys(\@matched_item_ids)
->entry();
for my $owner_id (@$owner_ids) {
$item_id_owner_map{$owner_id}++;
}
セイ:たとえば
は、私は(リチャードHuxtonを経由して)このようなものを書きました。ファイルをテストするとき、私はファイルscript.tを作り、script.tの中のscript.plのいくつかのブロックを繰り返さなければなりませんでした。
is($item_id_sold_times{1}, 1, "Number of sold items of item 1");
is($item_id_owner_map{3}, 8, "Number of sold items for owner 3");
などなどなど:コピーは、関連するコードセクションを貼り付けた後、私のような確認を行います。
しかし、私が書いたことはテストではないことを指摘している人もいます。これは確認スクリプトです。良いテストは、モジュールでコードを記述し、モジュール内のメソッドを起動するスクリプトを作成し、モジュールのテストを書くことです。
これは、ソフトウェアエンジニアリングで最も広く使用されているテストの定義が何であるかを考えさせてくれました。おそらくPerlのコア関数をテストしたことのある人でさえ、私に手を差し伸べることができます。スクリプト(モジュール化されていない)を適切にテストすることはできませんか?妥当性に対する検証に得ることなく
よろしく
私はそれを私の仲間に伝え、彼らが物事を尋ね続けるならば、私はBrian d foyを引用しています。これはあなたの本からここで学んだ通りに働くはずです:) – ado
テストは、利害関係者に貴重な情報を提供するものです。まったく異なる質問は、perlスクリプトの単体テストを書くべき方法です。 :-) – Edu