2010年11月2日火曜日
2010年10月26日火曜日
Python 3のunittestでprint関数をテスト
Python 3でprint関数の出力をテストしたい場合、doctestを使うのがPythonらしいやり方のようなのですが、doctestの方は使い方のサンプル程度にして、しつこいテストはunittestでテストした方がすっきりしそうなので、unittestでprint関数をテストする方法を探してみました。
するとどうやら、標準出力をio.StringIO()にしてしまうのが定番のようでしたので、さっそく試してみました。
するとどうやら、標準出力をio.StringIO()にしてしまうのが定番のようでしたので、さっそく試してみました。
2010年10月25日月曜日
読了『バグがないプログラムのつくり方』
先日購入したまま少し放置してたけど、内容は平易なのでさっくり読了。
プログラムのバグに困ってる人にテスト駆動開発(以下、TDD)を紹介しつつエクストリーム・プログラミング(以下、XP)の世界に招待するような内容で、XPのTDD以外の要素については、「書籍○○○○をぜひお求めください」的な感じ。
私自身はPythonのTDDの参考にしたかったので、Java言語に興味は無いのだけど、かなり俯瞰的な内容なので、全体の1/3程を占める第3部「やってみよう」のコード本体とデザインパターンの具体的な話以外は普通に読めたし、2004年発行の割には、それ程古臭くは感じなかった。(ひょっとすると、Javaを知らないから掲載されてるコードを古く感じなかったのかもしれない)
コードを書き直したい時にそれまで書いて来たテストが背中を押してくれる感覚や、著者がTDDを素晴らしいと感じている様子がちゃんと伝わってくるのも良かった。
しかし、XPに重きを置きすぎて、TDD以外の周辺要素の説明にページを割き過ぎた感じが否めない。付録Aの「テスト駆動開発の疑問」が全8問だったのは、この本が求める現状からの変化の大きさを考えれば明らかに少なすぎ。
私みたいにTDDを何も知らない人が、シナリオのスムーズさに多少眉に唾をつけつつ読む分には、そんなに気にならないかもしれないけど、TDDを業務用途で導入するために、他人を説得する必要がある人は、何か別の本を探してみた方が良いかもしれない。
川端 光義 倉貫 義人 兒玉 督司
翔泳社
売り上げランキング: 71090
翔泳社
売り上げランキング: 71090
プログラムのバグに困ってる人にテスト駆動開発(以下、TDD)を紹介しつつエクストリーム・プログラミング(以下、XP)の世界に招待するような内容で、XPのTDD以外の要素については、「書籍○○○○をぜひお求めください」的な感じ。
私自身はPythonのTDDの参考にしたかったので、Java言語に興味は無いのだけど、かなり俯瞰的な内容なので、全体の1/3程を占める第3部「やってみよう」のコード本体とデザインパターンの具体的な話以外は普通に読めたし、2004年発行の割には、それ程古臭くは感じなかった。(ひょっとすると、Javaを知らないから掲載されてるコードを古く感じなかったのかもしれない)
コードを書き直したい時にそれまで書いて来たテストが背中を押してくれる感覚や、著者がTDDを素晴らしいと感じている様子がちゃんと伝わってくるのも良かった。
しかし、XPに重きを置きすぎて、TDD以外の周辺要素の説明にページを割き過ぎた感じが否めない。付録Aの「テスト駆動開発の疑問」が全8問だったのは、この本が求める現状からの変化の大きさを考えれば明らかに少なすぎ。
私みたいにTDDを何も知らない人が、シナリオのスムーズさに多少眉に唾をつけつつ読む分には、そんなに気にならないかもしれないけど、TDDを業務用途で導入するために、他人を説得する必要がある人は、何か別の本を探してみた方が良いかもしれない。
2010年10月20日水曜日
書籍『バグがないプログラムのつくり方』
昨日のエントリでTDDの入門書的な書籍が欲しくなったので一冊買ってみた。
少し大きめの本屋を数軒はしごしてみたけど、タイトルにTDDと書いてある本は残念ながらこれ一冊。TDDって人気ないんだろうか?
対象環境はJavaとEclipseとJUnitで、私の環境はPythonとunittest2だけど、PythonのunittestはJUnitのPython版のようなものらしいので、雰囲気が分かればまあいいかーと考えて、あまり気にしない事にした。付属CD-ROMのEclipseのバージョンが2.1.3だったりしたけど、こっちも同様の理由でスルー。
そういえば、Pythonのモジュールって、JavaのJ○○のPython版だから使い方は大体分かるよね?みたいな、ユーザがJavaの知識がある事を前提にした説明のモジュールがやたらと多い印象がある。何でだろう?
内容の方は、Java言語に特有の機能を使ったリファクタリングの説明が多いとちょっと困るかもと思ったけど、立ち読みしてみた感じだと、例題が単純なせいかその辺は大丈夫っぽい。
ただし、SCMツール(Git, Mercurial, etc...)と連携してる様子は全く無さそうなので、その辺りには期待できそうにないのがちょっと残念。
バグがないプログラムのつくり方 JavaとEclipseで学ぶTDDテスト駆動開発 (Be agile!)
posted with amazlet at 10.10.21
川端 光義 倉貫 義人 兒玉 督司
翔泳社
売り上げランキング: 312266
翔泳社
売り上げランキング: 312266
少し大きめの本屋を数軒はしごしてみたけど、タイトルにTDDと書いてある本は残念ながらこれ一冊。TDDって人気ないんだろうか?
対象環境はJavaとEclipseとJUnitで、私の環境はPythonとunittest2だけど、PythonのunittestはJUnitのPython版のようなものらしいので、雰囲気が分かればまあいいかーと考えて、あまり気にしない事にした。付属CD-ROMのEclipseのバージョンが2.1.3だったりしたけど、こっちも同様の理由でスルー。
そういえば、Pythonのモジュールって、JavaのJ○○のPython版だから使い方は大体分かるよね?みたいな、ユーザがJavaの知識がある事を前提にした説明のモジュールがやたらと多い印象がある。何でだろう?
内容の方は、Java言語に特有の機能を使ったリファクタリングの説明が多いとちょっと困るかもと思ったけど、立ち読みしてみた感じだと、例題が単純なせいかその辺は大丈夫っぽい。
ただし、SCMツール(Git, Mercurial, etc...)と連携してる様子は全く無さそうなので、その辺りには期待できそうにないのがちょっと残念。
登録:
投稿 (Atom)