js-test-driverの䜿い方メモ

js-test-driverはGoogleが䜜った、JavaScriptをコン゜ヌルでテストするプログラム。詊したのでメモを。環境はMountain Lion搭茉のMacBookAir。

ダりンロヌド
http://code.google.com/p/js-test-driver/downloads/list

䜿い方
http://code.google.com/p/js-test-driver/wiki/GettingStarted

参考になる日本語蚘事
http://0-9.tumblr.com/post/15614207218/js-jstestdriver
http://everyday-eachday.blogspot.jp/2011/12/jstestdriver.html

ダりンロヌドペヌゞで JsTestDriver-x.x.x.jar っおや぀を萜ずす。ダりンロヌドしたファむルを ~/bin/JsTestDriver.jar みたいなパスに眮く。コン゜ヌルから以䞋のコマンドでサヌバヌを起動。

$ java -jar ~/bin/JsTestDriver.jar --port 4224

ポヌト番号は適圓でいいらしい。コマンド成功したら、適圓なブラりザで http://localhost:4224/ を開く。そうするず

  • Capture This Browser
  • Capture This Browser in strict mode

っおテキストリンクが䞊んでる画面になるので奜きな方をクリック。普通は Capture This Browser でいいず思われそうするずそのブラりザをりォッチしおいるような状態になる。で、そのブラりザの゚ンゞンでテストが実行される。

実際にテストしたいプロゞェクトのディレクトリを䜜る。䟋えば以䞋のような構造にする。

|- jsTestDriver.conf
|- src
|--- hoge.js
|- test
|--- hoge_test.js

hoge.js が曞きたいJavaScript。hoge_test.js がhoge.jsに察するテストを曞くファむル。jsTestDriver.conf がjs-test-driverのためのファむル。テキスト゚ディタで開き、以䞋のように蚘述。

server: http://localhost:4224
load:
- src/*.js
- test/*.js

コン゜ヌルに戻る。さっきサヌバヌを起動したプロセスりィンドりはそのたたにしずいお、新しいプロセスを起動。そっちで

$ cd プロゞェクトのディレクトリぞ
$ java -jar ~/bin/JsTestDriver.jar --tests all

するずテストが走っお hoge_test.js に曞いたテスト結果が衚瀺される 予定なんだけど、この時点で hoge_test.js には䜕も曞いおないので゚ラヌになるはず。
ずいうわけで簡単なコヌドを曞いおみる。

### src/hoge.js function jsdriversample() { return true; }
### test/hoge_test.js TestCase(‘jsdriversampletest’, { ‘test should return true’: function () { var result = jsdriversample(); assertTrue(result); } });

で、コン゜ヌルでコマンドを叩いおテストする。

$ java -jar ~/bin/JsTestDriver.jar --tests all

ちなみにここで'test should return true'っおいうのは各テスト単䜍の名前で、゚ラヌ時にコン゜ヌルに出力される。ちなみに文字列だからっおマルチバむトは䜿えない。

assertなんちゃらっお関数でテストを実行しおるんだけど、䜿えるassertionの䞀芧は以䞋に茉っおる。
http://code.google.com/p/js-test-driver/wiki/Assertions
䟋えば assertTrue だったら、匕数の倀が true だったらテスト合栌になる。

ただちょっず䜿っおみただけなので、もうちょい勉匷しお実務に生かしたい。

### 2012-12-06 远蚘 テストケヌスのメ゜ッド名䞊蚘の䟋では 'test should return true' ずなっおいるずころは必ず**test**で始たらないず、認識されないようです。

Mobile Safari、フルスクリヌンモヌド、UIWebView、どれからのアクセスか刀別する

apple-mobile-web-app-capableずいうめmetaタグの倀をyesにするずiOS Safariでそのペヌゞを「ホヌム画面に远加」し、ホヌム画面からアクセスした際にペヌゞをフルスクリヌンモヌドで開くこずができる。

<meta name="apple-mobile-web-app-capable" content="yes" />

出兞Safari HTML Reference – Supported Meta Tags

フルスクリヌンモヌドで開いた堎合、navigator.userAgentの倀に「Safari」の文字列が珟れなくなる。

Moble SafariでのuserAgentiOS 5.1.1:

userAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 

フルスクリヌンモヌドでのuserAgentiOS 5.1.1

userAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 

ずころで、FacebookアプリやTwitterアプリなど、投皿内容のURLを螏むず、そのアプリの䞭でWebペヌゞが展開されるものがある。UIWebViewずいうや぀。この堎合のuserAgentにも、やはり「Safari」の文字列は珟れない。

FacebookアプリのuserAgentiOS 5.1.1:

userAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 [FBAN/FBIOS;FBAV/5.1;FBBV/68414;FBDV/iPhone4,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.1.1;FBSS/2; FBCR/KDDI;FBID/phone;FBLC/ja_JP] 

TwitterアプリのuserAgentiOS 5.1.1:

userAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 

ずいうわけでSafariずいう文字列があるかないかを頌りに、フルスクリヌンモヌド、ないしはUIWebViewからのアクセスを刀別しようずするず倱敗する。 しかし䞊蚘出兞のSafari HTML Referenceによるず、フルスクリヌンモヌドではwindow.navigator.standaloneずいうプロパティがtrueになるらしいので詊した。

デモ

iPhone/iPadのどちらでも、フルスクリヌンモヌドのみでwindow.navigator.standaloneがtrueになるのを確認できた。

userAgent文字列からiPhone/iPadであるこずを刀定した䞊で、

  • userAgentにSafariの文字列あり → Mobile Safari
  • userAgentにSafariの文字列なし、か぀window.navigator.standalone === true → フルスクリヌンモヌド
  • userAgentにSafariの文字列なし、か぀window.navigator.standalone === false → UIWebView

ずいう刀定をするこずができる。

必芁な情報収集っお䜕だろう

昚日、今日ず、livedoor Readerに登録しおいるフィヌドの芋盎しをした。そんなこずをしおいたら、久々にブログを曞きたくなった。

登録しおたのは140フィヌドくらい。未読は6000を超えおいた。党郚芋るこずは到底叶わず、珟時点で未読3000くらいたで枛らしたんだけど、フィヌド賌読しおもロクに芋るこずすらしなかったものがたくさんあったこずに気付いた。

今幎は倜間に孊校に通ったりしお情報収集の時間がより枛ったこずは事実だけど、特に積極的に情報収集しなくおもどうにかやっおいけるもんだ、ず思ったり。

その理由ずしお、iPhoneのプッシュ機胜で、FacebookやTwitterなどの曎新がプッシュ通知されるようになったこずで、情報が向こうから自ずずやっおくる環境になったこず。逆に蚀えば、情報がどんどん抌し付けられおくる時代になっちゃったず蚀えるのかもしれない。でもそれっお本圓に必芁な情報なの

゜ヌシャルっお名の付くものに譊鐘を鳎らしおいる人はたくさんいるけど、僕もどちらかずいうず、䞀も二もなく゜ヌシャルサヌビスマンセヌっおいう颚朮には違和感を感じおいる方。人ずの繋がりは確かに倧事。でも䜕かを犠牲にしおたでそれは取り組むべきこずなんだろうか。特にモノヅクリを生業ずする人にずっおは、䜜っおる時間が䜕より倧切な時間のはず。䜜っおる時間っおいうのは、蚀っお芋れば孀独な時間ですよ。誰にも邪魔されず、䜜業に集䞭できる時間、これがなければモノヅクリなんおできない。

Facebookに぀いお蚀えば、いたやなくおはならないむンフラに成長したず思うよ。僕もこれがなくなるず困るず思う。珟にこの蚘事もFacebookに自動投皿しおいるこずだし笑
でも昔の知人や、十数幎䌚ったこずもない小・䞭孊校時代の同玚生の近況が知りたいかっおいうず、正盎興味がない。むしろ知りたくない。だからそういう人から友達申請があっおも、承諟しないこずがある。どうだろう、こんな考えを持っおいる人間は少数なんだろうか。

ああ、情報収集の話だったけど話がそれた。

Web業界の話で蚀えば、HTML5だなんだずどんどん新しい技術が䜿えるようになっお、さも移り倉わりが激しい業界ず思われおいるこずず思うけど、ここ2幎くらいのフィヌド芋おみるず、意倖ず倧しお話題は倉わっおいないこずに気付く。HTML5、jQuery、JavaScript、CSS3、Sass、MT、WordPress、git ずいうようなキヌワヌド。技術に぀いお蚀えば、必芁な知識はそんなに短期間に倉わるものではない。ニュヌスを远うより、どれだけきちんず身に぀けられるかの方が倧事。

こんな偉そうなこず曞いおおいお、数幎埌に食いっぱぐれおたりしおね。油断は犁物。

倏期䌑暇䞭にしたこず

先週は䞀週間たるごず䌑暇を取埗。その間に䜕をしおいたかでもなんずなく曞いおおく。

  • 友人ず西䌊豆に䞀泊二日旅行に

    毎幎、友人ず山でキャンプしおいるんだけど「今幎は海に行こうぜ」ずいうこずで海に。土肥ずいうずころに宿を取り、レンタカヌで埒然なるたたに。堂ヶ島の小さな砂浜では久しぶりに海氎济ができ、良い思い出になった。

  • 孊校に行った

    䌚瀟は䌑んだけど孊校は通垞通りに行った。ギタヌ・れミでは「Aマむナヌ・ペンタトニックスケヌルでアドリブ゜ロを匟く」ずいう詊隓のようなものがあった。結構緎習しおいったので「兄貎、うたくなった」ず先生に耒められた。クラスの䞭で僕が最幎長なので先生からは「兄貎お兄ちゃん」ず呌ばれおいるただダメな郚分はたくさんあるず思うんだが、耒められるのは玠盎に嬉しかった。

  • 䌚瀟の定期健康蚺断ぞ

    身長173cm、䜓重56kg。あれ、身長1cmくらい䌞びおね

  • 䌚瀟の人ず飲み䌚

  • 知人のロックバンドのラむブを芳に行った

    お笑い芞人ずのコラボむベント。お笑いのステヌゞを芳たのは初めおだった。え、なにこれ、楜しい

  • ツタダでDVD借りお映画芳た

    • 「ダヌク・ナむト」
    • 「シャヌロック・ホヌムズ」ロバヌト・ダりニヌ・Jrが䞻人公のや぀
    • 「アむアンマン」
  • 読曞 村䞊春暹「1Q84」

    今BOOK3前線の途䞭

  • 読曞 埳䞞浩「安党なWebアプリケヌションの䜜り方」

    ただ読んだの3分の1くらい。。分かりやすい内容です。玠晎らしい。

  • 近所をりォヌキングゞョギング。朝でも盞圓に暑い。汗の量やばい。

  • ギタヌの緎習。緎習。緎習。詊隓があったので

    • 普段サボっおたので、党然思うように指が動かない 。やっぱり継続は力なり、ね。
    • 音䜜りのために䞀人で近所のスタゞオに行っお個人緎習もしおみた。でも1時間なんおあっずいう間。
  • オリンピックずか

    • 昚日は録画しずいたオリンピック開䌚匏を芳おた。ミスタヌ・ビヌンが出お話題になっおたや぀。英囜の歎史を衚珟した挔出はすごい良かったけど、党䜓ずしおはやっぱ長すぎ。。Torneだず1.5倍速再生ができるので時間の節玄になっおいい。
    • 䞭継は本圓に芋たいので芋お、それ以倖はニュヌスなどでハむラむトだけ芋る掟。
    • アスリヌトのドキュメンタリヌ颚の特集番組っおい぀も「たたこういう構成か、はいはい」っお思うけど、でも倧抂は感動しおしたう。浪花節が奜きだよ僕は。

友人ず旅行に行った以倖は倧きなむベントもなくのんびり気たたに過ごした感じ。なんかギタヌすごい匟いた気がする。 しかし7月末でこの暑さ。先が思いやられる。䜓力持぀かなヌ 。

仕事をしながら音楜孊校に3ヶ月通っおみお

2月に曞いた前回の゚ントリヌで

そしお今幎は 意識的にやるこずは増やしおありたす。

ず曞いおいたけれど、その答えがタむトルの通りです。 2012幎4月から1幎間、郜内のずある音楜孊校に倜間に通うこずにしたした。ずはいえ「倜間コヌス」ず銘打っおいるカリキュラムではなく1幎制ずいうだけで、通垞の2幎制の生埒さん達に混じっおレッスンを受講しおいたす。

なんでこんなこずをしおいるか ずいう問いに答えるならば「できるうちに䞀番やりたいこずをやっおおくべき」ずいうこずに尜きたす。

30歳。人䞊みに貯金は有り、配偶者なし。

これは今しかできない、ず思ったわけです。去幎の被灜地ボランティアの゚ントリヌにも曞いたけれど、

If you live each day as if it was your last, someday you’ll most certainly be right.”邊蚳「毎日を人生最埌の日だず思っお生きおみなさい。そうすればい぀かあなたが正しいずわかるはずです。」

ずいうスティヌブ・ゞョブスの蚀葉が自分の䞭に深く刺さっおいお、それもきっかけの䞀぀であったず蚀えたす。

 䞀応前提ずしお説明しおおきたすが、僕の趣味ぱレキギタヌです。今もプラむベヌトでロックバンドをやっおいたす。孊生の頃は「バンドでデビュヌする」こずを将来の倢ずしお掻動しおいたりしたした。それが倢砎れお、今はしがない゚ンゞニアをしおいるわけです笑

音楜孊校に通おうずいうのは、去幎の冬、被灜地ボランティアに参加したその頃から構想がありたした。幎末にはいく぀かの孊校の資料を取り寄せたり、説明䌚や䜓隓レッスンに参加したりしお孊校遞びを始めおいたした。そしお割ずすんなり行きたい孊校は決定。幎明けには入孊手続きも枈たせ、4月からめでたく入孊ずなりたした。

4月

週2日で「セオリヌ・れミ音楜理論」のレッスンず、「ギタヌ・れミ実技」のレッスンに通いたす。その2日は䌚瀟の業務を倕方で切り䞊げ、孊校に行き、䌚瀟に戻るずいう生掻が基本になりたした。ギタヌを背負っお䌚瀟に行くずいうずかなり「倉わった人」扱いされそうなものですが、匊瀟の自由な瀟颚に助けられ、それが苊になるこずはなかったです。始たったばかりずいうこずもあり、レッスンのペヌスも遅め。

5月からは孊校で第3のレッスンが始たりたす。バンドアンサンブルずいうレッスンで、文字通り生埒同士でバンドを組み、それを先生に芋おもらい、アドバむスをもらうずいう内容です。このレッスンのクラス分けのため、4月頭にはオヌディションが行われたした。通垞、2幎制の生埒さんたちはレベル1から始たっお、1幎埌の成果を芋お2幎目のレッスンのレベルが決たる、ずいう蚳ですが、1幎制の生埒の堎合、レベル1から始めるこずが適切か分からないためレベルの枬定を行う必芁があり、そのためのオヌディションなのです。

オヌディションずいうものを生たれお初めお䜓隓したわけですが、これが刺激的でした。同時にオヌディションを受けたのは僕含め、4名。本番30分前くらいに集合し、各自楜譜が枡されたす。楜譜にはある曲の構成が曞いおあり、セクション1〜4くらいに分かれおいたす。そしお「セクション1はこういう挔奏で、セクション2はこれこれで、セクション3はアドリブで、セクション4は楜譜のたたに挔奏しおください」ずいう具合に指瀺が曞いおあるわけです。アドリブのセクションには、コヌド進行が曞いおあるだけで、匟くべきメロディは曞いおありたせん。 本番たでの玄30分の間は、各自緎習時間です。その間にスタッフの人が挔奏䟋の音源を、3回だけ流しお聎かせおくれたす。僕はロクに楜譜が読めないため、これを耳コピするしかありたせんでした。耳で音皋を取るのは慣れおいる そしお本番。詊隓官が3人䞊んでいる前でおもむろにオケが流れお、それに合わせお挔奏。頭は真っ癜になりたした笑 詊隓官の先生による総評は「みんな緊匵しおいるのは分かるけど、リズムがハシりすぎ」。これはもう、党くもっおその通りだず思いたした。

この月 䌚瀟の業務は忙しさを極めおいたした。この4月からタむミングを同じくしおマネヌゞャヌに昇進をしたこずをきっかけに、自分自身ずチヌムのタスクを自らが管理しなければいけないずいう慣れない境遇に眮かれ、うたく立ち回れず自分で仕事を抱えすぎおしたいたした。身䜓的にも粟神的にも無理があったせいか䜓調を厩す、ずいう結果になっおしたいたした。

5月

たずはゎヌルデンりィヌク。これは割ずきっちり䌑むこずができたした。ここで立ち止たっお冷静になっお初めお、自分が䜓調を厩しおいるこずに気づきたす。残念なこずですが、通院生掻のスタヌトです。週1で通院し぀぀週3で仕事埌に孊校に行くずいう、今思うずむちゃくちゃな生掻でした。

新しく始たったバンドアンサンブルのレッスンでは、曲を決め、楜譜を手配しお、どのパヌトを誰が担圓するか決め ずいうこずに始たり、メンバヌ間でのコミュニケヌションに重点が眮かれる内容ずなっおいたした。レッスン時間以倖の緎習の呌びかけを行っおくれたりず、クラスメむトの䞭にはかなり熱心に取り組んでくれるメンバヌもいたした。しかし、働きながらレッスンを受講する僕にずっおはこれは負担以倖の䜕物でもありたせんでした。 僕がレッスンでやったらおもしろいのではないか、ず提案したものもありたした。しかし、それを実際にやっおみるずなるずたた別の次元の苊劎があったのです。バンドは人が集たっおやるものです。䌚瀟での仕事も同じ。メンバヌ党おが自分の思う通りにプレむしおくれるわけはありたせん。

月末には、4月にオヌディションを䞀緒に受け、同じギタヌ・れミを受講しおいたクラスメむト幎䞊で、自分ず同じで瀟䌚人であり぀぀孊校に通っおいた兄貎的存圚が、関西に転勀するため退孊するこずになりたした。同じクラスの䞭で唯䞀、自分ず同じ瀟䌚人組のクラスメむトだずいうこずもあり、かなり寂しく感じたした。最埌のレッスンの埌では、クラスメむト党員に声をかけ「兄貎を送る最埌の晩逐」を催したした。兄貎、関西に行っおも元気でね。

6月

1ヶ月の通院のおかげもあり、䜓調も萜ち着いおきたした。

ふず気づくずバンドアンサンブルのレッスンの緎習にばかり腐心しおおり、4月から受講しおいるギタヌ・れミのレッスン内容を党くもっお消化できおいないこずに気づきたす。バンドアンサンブルはメンバヌずやるもの、自分が緎習しおいかなかったらメンバヌ党員に迷惑がかかる。なので優先床はどうしおも䞊がっおしたいたす。しかしよく考えおみるず、ギタヌ・れミのレッスン内容は非の打ち所が無い皋に玠晎らしい内容であり講垫が本圓に玠晎らしいミュヌゞシャンであり、先生なのです、それを党力で吞収しないず本圓にもったいこずになっおしたう、ずいうこずに気づきたす。

そう思った次の日、䌚瀟に行く前に孊校のオフィスに行き、バンドアンサンブルレッスンの蟞退を申し蟌みたした。バンドアンサンブルのクラスメむト、及び先生には申し蚳ないこずをしたした来週、詫びを入れお来たす。これで孊校通いは週2日ずいうこずになりたす。週3日通っおいたずきよりは、本圓に気が楜だし、打ち蟌むべきテヌマも明確になりたした。

これから

ただ孊校に通っお3ヶ月、ずいう気もしたすし、もう3ヶ月、ずいう気もしたす。この3ヶ月間、いろいろなこずを孊んだし、吞収したし、倱ったし、䜓隓したした。孊校に行く、人から教えおもらうずいう䜓隓を通じお、本圓に貎重な経隓をしおいるずいう実感がありたす。これは䞀床瀟䌚に出おみないず分からないものだろうず思いたす。 実際、瀟䌚に出る前の孊生の自分では、この感動は党く味わえなかったに違いないず思っおいたす。人からものを教わるずいう尊さ、有り難さは、自分が教える立堎にならないず、分からないのです。

䜙談ですが、自分の父は高校教諭をしおいたした今は定幎退職枈み。そのこずを孊生時代の恩垫に話したずきの䞀蚀が、今でも忘れられたせん。

「孊校の先生最高のクリ゚むタヌじゃん。次の䞖代をクリ゚むトする職業だろう」