データセクションにアレイrefをさくっと書く
マニュアル読めば書いてあることですが。
データセクションに改行区切りでデータを書いて、それ全体を一つのアレイrefにしたいときは、こう。
#!/bin/perl use strict; use Test::Base; plan 'no_plan'; sub return_arrayref { [qw/hoge huga foo/]; } filters { input => ['return_arrayref'], expected => ['lines','chomp','array'], }; run_is_deeply; __END__ === hoge --- input --- expected hoge huga foo
何故これが必要だったかというと。
大量のidの比較をしたかった。ある関数を呼んだら、大量のidをアレイrefで返す。
データセクションに大量のidを書いて、inputはその関数、expectedはデータセクションに書いたデータ、と。
yamlで書いたら頭に - 入れなきゃだし、evalは先頭と行末に [qw/ と /] と書くのが何かイヤンなので却下。
あとついでに、訳有って糞重いライブラリを呼んでるので、テスト実行のたびにライブラリ呼んで重いので、少しでも軽くなればなーと、重そうなevalを避けたかった。
とかやってたら柔道家から「フィルタ3つより1つの方が軽いと思うけどな…」と正にその通りなツッコミされたという話。