SSブログ

Django のテストに factory_boy を使う [Python]

「テストに factory boy を使います」といわれて、はてそれはなんでしょう?と思ったのだが、ユニットテストで fixture のかわりにテストデータを作るソリューションなんだそうで。みんな、もの知りだなぁ。

https://github.com/dnerdy/factory_boy/
これの README を読むのが良いようで、(訳者曰くちょっと古いけど)README の日本語訳もある。
http://d.hatena.ne.jp/namaco35/20111004/1317659744
ありがたやありがたや。

Rails に factory_girl っつーのがあるんですね。factory boy の日本語での情報がないんですが、rails の factory girl についてググったら、なぜにこれが必要になったか、ってのがわかるかな。
自分なりの解釈では、
fixture にデータが置いてあると、テストを書き換えたときに別のところにある fixture も書き換えないといけないのがわかりづらいとか、テストに関連したテストデータがテストコードのなかにあったほうがわかりやすいとか、テストデータの関連を Python のロジックで書けるとか、そんなところでしょうか。
確かに実装とテストを修正するのはいいけど、それに関連する json の fixture 直す時しんどいよね。

手元の既存のテストコードを見ると、 set_creation_function() で _create メソッドを置き換えられて、条件がいろいろあるようなモデルも作れるようになってたり、とか、いろいろ機能があるらしいけど、 README だけじゃよくわからんな。ソースを見るしかないのかな。とりあえず使うには README だけ読めばいいかな。

開発版は 2.0 で python3 でも動くようにするらしい。
https://factoryboy.readthedocs.org/en/latest/
すなわち引き続き使っても大丈夫ということか。
2.0 では set_creation_function() が deplicated になるみたいで、じゃあ、今まで使ってたようば場合には、どうすれば良いのかよくわからない。
なんとなく Django を使ってるだけでは、なにも知らなくて 2周遅れくらいだな、と思う今日この頃
コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント

トラックバック 0