Github.Uploader.Json2Sqlite.unittest.201704230804
成果物
Github.Uploader.Json2Sqlite.unittest.201704230804
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
- Python 3.4.3
前回まで
- 認証の単体テスト
- http://ytyaru.hatenablog.com/entry/2017/12/09/000000
- http://ytyaru.hatenablog.com/entry/2017/12/11/000000
バグ発見
- 全関数
- 引数の型チェックをしていなかった
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はコンパイルエラーがない
PythonはC#などの静的型付け言語と比べてコンパイルエラーが出ない。
コードを実行するまでエラーかどうかわからない。そのせいでテストコードを書いて実行させないとタイポの発見すらできないことがある。
やはり静的型付け言語のほうが楽して品質の高いコードが書けると思った。後戻り作業を最小化できる。
所感
えーマジPython?キモーイ!Pythonが許されるのは100行規模までだよねーキャハハハハ
Pythonは小規模なら楽にかけて嬉しいのだが、規模が大きくなると微妙。C#で書きたくなってきたが環境構築だけでも大変そうだしマシンスペックも低いので今は後回し。こういう課題を書き残す場所を確保するのが先か。