limeのis_deeplyが使いにくいので自前で書いてみた
limeのis_deeply。配列を比較できて便利だけど、いかんせん結果が見にくい。
と、いうわけで自前で書いてみた。
たとえばこんな配列を渡すと、
$a = array(
    'hoge' => 'hogehog',
    'huga' => 100,
    'moga' => array(
        'a' => 'aaa',
        'b' => 'bbb',
    ),
);
$b = array(
‘hoge’ => ‘hogehoge’,
‘huga’ => ‘100’,
‘moga’ => array(
‘a’ => ‘aaa’,
‘b’ => ‘bb’,
),
);
$diffs = is_deeply($a, $b);
こんな結果が帰ってくる。
Array
(
    [[hoge]] => Array
        (
            [0] => hogehog (string)
            [1] => hogehoge (string)
        )
    [[huga]] => Array
        (
            [0] => 100 (integer)
            [1] => 100 (string)
        )
    [[moga][b]] => Array
        (
            [0] => bbb (string)
            [1] => bb (string)
        )
)
これをもっと見やすく整形してlimeを継承して使うようにすれば、だいぶテスト時のいらいらが軽減されるはず。