Test::Specに関するメモ

2024年にもなってperl5の話題。

古いスクリプトをいじっているとTest::Moreだけで書いてあったテストが読みづらくて仕方なかったのでTest::Specで書き直してみた。

以下のような書き方が良い。

describe "ほげほげすると" => sub {
  it "ふがふができる" => sub {
    ok $result or diag "情報";
  };
};

こうするとテスト失敗時に以下のような出力となる。

#   Failed test 'ほげほげすると ふがふができる'
#   at example.t line 10.
# 情報

ポイントは`ok`の使い方。

`ok($result,"test name")`と書いてしまうと、test nameが出力されてしまい、describeとitに書いた文が出力されない。

またdiagを書けばテスト失敗時の手がかりを増やせる。