Python の unittest と テスト駆動開発 を Eclipse でやってみる
エキpy 11章に、 average 関数をテスト駆動開発で実装する手法が書いてあったのでさわりの部分をやってみました。写経です。写経大事。でも Eclipse もそんなに慣れてないです*1
Pythonの標準テスティングフレームワークは、unittest で JUnitがJavaで行なっていることと同じ機能を提供します。import unittest して unittest.TestCase という基底クラスを継承したクラスの test から始まるメソッドを実行してくれます。
ここでは、受け取った複数データの平均値を求める average関数のテストとその実装です。TDDなのでテストコードからつくるんですね。
では、さっそくやってみましょう。
環境
- Pleiades 3.7 indigo on Windows 7 Professional 64-bit
- PyDev 2.6.0
最初のテストコードと実装
最初のテストコード (test_average.py)
from average import average import unittest class AvgTest(unittest.TestCase): def test_average(self): self.assertEquals(average(1,2,3),2) if __name__ == '__main__': unittest.main()
最初の実装 (average.py)
def average(*numbers): return sum(numbers) / len(numbers) if __name__ == '__main__': average(1,2,3)
PyUnitで実行します。グリーンになりました。
テストコードを追加
テストコードに追加
では、浮動小数点に対応することにしましょう。まずはテストコードを追加します。
from average import average import unittest class AverageTest(unittest.TestCase): def test_average(self): self.assertEquals(average(1,2,3),2) def test_average_floating(self): self.assertEqual(average(0,1), 0.5, 'floating point test')
ここでテストを実行すると、レッドになります。
所感
課題
- PyUnit を実行するショートカットがわからなかった。むむむ。
- 作者: Tarek Ziade,稲田直哉,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2010/05/28
- メディア: 大型本
- 購入: 31人 クリック: 713回
- この商品を含むブログ (87件) を見る