テストの思い出
僕も遥か昔は学び舎にて学業なるものに精を出していた時代がありました。僕は成績とかあまり良い方ではなくてですね、上からでも下からでも指で数えようとすると指が辛くなる感じのところにいました。つまりどのへんなのかってのは察してください。
まあ、そんなわけで僕はテストとか苦手なんですよ。抜き打ちテストとかあった日にはそれはもう…。
悲惨だったりするわけですね。でも世の中ってのは点数とか偏差値とかそういうのが全てじゃないですか。
そういうのって生きづらいなって。
Jasmine
はい、というわけで先程の話にオチがありませんが本題に入ります。オチはなくても闇はあるんだよ……。深い深い闇がお前を覗いていることだろう。
というわけで、いつものところでネタ集めをかねたアレをやりました。
今回はJasmineと呼ばれるやつですね。
有識者(Wiki)によるとこのようなやつらしいです。
Jasmine is an open source testing framework for JavaScript. It aims to run on any JavaScript-enabled platform, to not intrude on the application nor the IDE, and to have easy-to-read syntax. It is heavily influenced by other unit testing frameworks, such as ScrewUnit, JSSpec, JSpec, and RSpec.
有識者まさかのアメリカ語を用いて解説してくれてますね*1。そんなわけでエキサイトさんよりエキサイティングな翻訳をすることで有名な僕がざっくり訳すとこんな感じになります。
「Jasmineはオープンソースのテストフレームワークです。JavaScript対応環境で、読みやくて依存しないそんな構文に私はなりたい。ScrewUnit、JSSpec、JSpec、RSpecなどの他のユニットテストフレームワークの影響を大きく受けます。」、だそうです。ようするにJavaScript用テスト支援ツールて感じですね。よくわかんないから適当なこと書いてますけど、いつものことだから仕方ないね。
詳しく知りたければ公式のドキュメント見たほうが間違いがないからね。仕方ないね。
公式
Jasmine Documentation
じっさいにやってみた
百聞は一見にしかずという名言もありますから、よくわからなくても食わず嫌いとかなしに触ってみることにしましょうかね。上の公式からソースを取ってきたら早速使っていきます。
というわけで月曜判定テストを作ってみました。
上の画像のように結果をチェックしてくれるそうです*2。内容としましては「2017年~2019年までの7月7日」が月曜日かどうかをテストしてみました。テストしてみたらどうやらすべて月曜ではないようですね。月曜日ではないようです。
ソース
<!DOCTYPE> <html> <head> <meta charset="utf-8"> <title>Play Jasmine</title> <script type="text/javascript" src="./jasmine.js"></script> <script type="text/javascript" src="./jasmine-html.js"></script> <script type="text/javascript" src="./boot.js"></script> <link rel="stylesheet" type="text/css" href="./jasmine.css"> <script> // Test Target function test(year, month, day) { var date = new Date(year+"/"+month+"/"+day) var wod = date.getDay(); return wod; } // Test Code describe('説明:', function() { it('2017年7月7日は月曜日', function() { expect(test(2017, 7, 7)).toEqual(1); }); it('2018年7月7日は月曜日', function() { expect(test(2018, 7, 7)).toEqual(1); }); it('2019年7月7日は月曜日', function() { expect(test(2019, 7, 7)).toEqual(1); }); }); </script> </head> <body> </body> </html>
とりあえず「jasmine.js」「jasmine-html.js」「boot.js」さえあればなんとかなってくれるっぽいです。あと関連スタイルシート。それだけでできるって便利だなー。
取り込んだらそのあとにテストしたいコードを書いていきます。
僕がテスト項目として書いている箇所はコメントに"Test Target"、"Test Code"とか書いてある処理だけです。先日"Moment.js"という便利ライブラリを使ったばかりなのになぜ使わないんでしょうね。きっと過去にとらわれて生きているから未来に目を向けることができないからでしょうね……。
それでも見た目がごつい割にやることは少なくていい感じですね。これについては大したことやってないからというだけなんだけどね……。大したことやっていない……まるで僕の人生と同じだね……。
テストなんて久しく経験してなかったけど、また一つ闇の深いテストの思い出ができてしまったね。