node.js + mocha なテストで期待値ファイル json にコメント入れたくて minify、と考えるも…

怒り新党、の巻。

前に Python での json の「活用」ネタとして「ConfigParser と json の MIX」を書いたが、これに通ずる話。

つまり、「json にはコメントを書けない」ということなわけで、単体テストの「期待値」として json をそのまま使おうとすると、これが非常に厳しい。つまり「書くか書かないかの二択」になってしまい、「一フィールドだけ殺したい」とか出来ない、というわけだね。

最初は「いずれそうしたいなぁ」と思って軽く考えてたんだけど、すぐに「いますぐかんがえないとしむ」状態に陥る。何かつーと、「100以上の列(or 行)」を含む「それなりのサイズ」の期待値ファイルを作って「どこかで構文エラー」を起こしていたんだけれど、これがパーサが「末尾」でしか検出出来ないパターンだったのね。原因箇所は末尾なんかじゃないのに。

つまりこういうときに、「疑わしい箇所をコメントアウト」してちょっとずつ原因箇所を絞り込みしたい、みたいなことを、「JSON を JSON のままで」扱おうとする限りは絶対に出来ないんだよね。


そういう動機で、「うーん、minify とかかけたらコメント取っ払ってくれたりするものなんかないかしら」として調査を始めたんだけど、その最初にお試したヤツが非常にマズかった。

これだ

もう言っちゃうさ。「バカか?」。

まずね、「ファイルを入力として、ファイルを出力とする」ものが多いのはこれは仕方がないことだと思う。ワタシのようなニーズはどっちかといえば稀で、普通は「WEB リソースとして公開するためにサイズ圧縮する」ために使う方が普通だから。だからそうでなさげなおぬしをあてにしたんぞ。

あのなぁ…、なんで拡張子見とるん? (つまり「json」という拡張子を許さない。)

というわけでこれだけで既に印象悪過ぎるんだけど、そもそも「無理やり拡張子を .js にして」やってみても、(今度は)正しい json を構文エラーで拒絶。コロンがダメだと抜かしやがる。あぁ、もうほんとに「json」ダメなのかい。つーか json がダメってもう「javascript がダメ」てのと一緒じゃん(一緒つーかそれ以上)。

というわけで、もうちょっと探さないとなぁ。(これは違うんだよね。まぁ「本来のユースケース」のためにはいずれ使おうかとは思ってるけれど。)