こんにちは、高知からリモートインターンシップさせていただいている森田です。1月ももう終わりというタイミングで、インターンシップの方の課題もちょうど終わりました。動作するものは結構前に作れていたんですが、テストコードやリファクタリング等で手間取っていました。次からはもう少しスムーズに書けると思うので、頑張ります。
前回は「ファイルの保存場所がおかしい」というミスで時間を書けてしまったんですが、今回はサクサクテストコードを書けました。pythonの方は特筆すべきことはないですが、ただ正常時と異常時のテストを切り分けて考えてなかったのが問題でした。場当たり的に「こんなテストが必要かなー」という感じで書いていたので、テストコードとは呼べないかもしれないです。
通常は設計を書いてから、テストコードを書くはずなので、また設計をすることがあればこの反省を活かしていきたいです。
JavaScrpitのテスト
JavaScriptに任せている処理は、「APIから受け取ったデータをHTMLで表示する」という処理です。そのため、機能毎に切り分けても入出力が存在しないため、どうテストすればよいのかわかりませんでした。色々調べてみたところ、ブラウザで確認することもテストのうちに入るらしいので( コマンド一発でテスト〜ということはできないので面倒臭い )、本番用のHTMLファイルとは別にファイルを作り、テストしました。
画面下部にある「県名 ~ お天気を見るフォーム」はHTMLを手打ちで追加したものです。
test function: is_not_undef() ~~ と表示されている箇所は、JavaScriptのテストフレームワークの一つである、mochaを利用しました。導入方法は簡単で
npm install mocha power-assert --save-dev
をターミナルで入力しinstallしたあと、
テストフレームワーク
<script src="node_modules/mocha/mocha.js"></script>
<script src="node_modules/power-assert/build/power-assert.js"></script>
<link rel="stylesheet" href="node_modules/mocha/mocha.css" />
test対象のjsも読み込む
<script>
// setup mocha
mocha.setup('bdd');
mocha.reporter('html');
//~~~~~ describe ,assert , itなどのテストコードを書く~~~~~
mocha.run();
</script>
テスト用のhtmlファイルを作り、そこにテストコードを書き込むだけです。コマンドラインで検証できるわけではないので少々不便ですが、htmlファイルを開くだけでテストがグラフィカルに見れるのは便利な気もします。
振り返り
最後に、今回の課題についての振り返りを書きました。後半気づいてきたんですが、大体のミスは凡ミスだなということを感じました。初めて触るサービスだからとか関係なく、文法を確認したり、よくある間違いQ&Aを確認したり、PCを再起動したりという基本的なことを意識して開発ていこうと思います。
今後もサーバーワークスでアルバイトさせていただくんですが、質問することを意識していこうと思います。基礎的な質問が多いので躊躇っていたんですが、結局聞いた方が早いですし、他のサーバーワークスの方とコミュニケーションとりたいので。「何でも聞いていいチャンネル」で質問していこうと思います。目標は1日1回ですね。ご迷惑かもしれませんが、よろしくお願いします。