やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Json2Sqlite.pyの単体テストをした

Github.Uploader.Json2Sqlite.unittest.201704230804

成果物

GitHubGithub.Uploader.Json2Sqlite.unittest.201704230804

開発環境

前回まで

バグ発見

  • 全関数
    • 引数の型チェックをしていなかった
  • ArrayToString関数
    • 配列の要素の型がstr型でない場合にエラーになる
#ret += v + ','
ret += str(v) + ','
* 不要な`print()`をコメントアウトした
  • StringToArray関数
    • タイポ(シンタックスエラーとして起動時点でエラーにしてほしかった)
#for item in string.sprit(','):
for item in string.split(','):
* 要素が空白文字だけならその要素を無視するようにした
#if 0 < len(item):
if 0 < len(item.strip()):

思ったこと

テストコードを書くことでテスト項目を考え、バグ発見につながる

書いてみないと考えないようなことがある。

今回のバグはざっくり実装するとき考えるには細かい話もあり意識できない。当然だろうが単体テストすることは大事と感じた。

Pythonコンパイルエラーがない

PythonC#などの静的型付け言語と比べてコンパイルエラーが出ない。

コードを実行するまでエラーかどうかわからない。そのせいでテストコードを書いて実行させないとタイポの発見すらできないことがある。

やはり静的型付け言語のほうが楽して品質の高いコードが書けると思った。後戻り作業を最小化できる。

所感

えーマジPython?キモーイ!Pythonが許されるのは100行規模までだよねーキャハハハハ

Pythonは小規模なら楽にかけて嬉しいのだが、規模が大きくなると微妙。C#で書きたくなってきたが環境構築だけでも大変そうだしマシンスペックも低いので今は後回し。こういう課題を書き残す場所を確保するのが先か。