Hatena::Grouppython

yanbe.py このページをアンテナに追加 RSSフィード

2009-01-29

Pythonでテスト駆動開発のベストプラクティスを探る

19:34 |  Pythonでテスト駆動開発のベストプラクティスを探る - yanbe.py を含むブックマーク はてなブックマーク -  Pythonでテスト駆動開発のベストプラクティスを探る - yanbe.py  Pythonでテスト駆動開発のベストプラクティスを探る - yanbe.py のブックマークコメント

Debugging sucks, Testing rocks.

という言葉もあるぐらいですので,テストがんばりたいです.

http://www.webrankinfo.com/images/google/debugging-testing.png

とりあえず今のところの感想としてはPythonで標準で使えるDoctestは一長一短ということ.なぜなら,

def fact(n):
  """Calcurate factrical.
  
  Arguments:
  - `n`: number to calcurate factrical
  
  >>> fact(4)
  24
  >>> fact(1)
  1
  >>> fact(0)
  1
  >>> fact(-1)
  Traceback (most recent call last):
    ...
  ValueError: n must be n>=0
  >>> fact(1.2)
  Traceback (most recent call last):
    ...
  ValueError: n must be int
  """
  if type(n) != int:
    raise TypeError("n must be int")
  if n < 0:
    raise ValueError("n must be n>=0")
  if n < 2:
    return 1
  else:
    return n * fact(n-1)

うーん,長すぎると思う.

インタプリタでdocstringで使い方を確認しようにも以下のような感じになって見づらい.

In [2]: help(fact)
Help on function fact in module __main__:

fact(n)
    Calculate factrical.
    
    Arguments:
    - `n`: number to calculate factorial
    
    >>> fact(4)
    24
    >>> fact(1)
    1
    >>> fact(0)
    1
    >>> fact(-1)
    Traceback (most recent call last):
      ...
    ValueError: n must be n>=0
    >>> fact(1.2)
    Traceback (most recent call last):
      ...
    ValueError: n must be int

この辺を試したい

この辺をチェックしたい

Parse RSS and Atom feeds in Python. 3000 unit tests. Open source.

SaritaSarita2013/03/16 03:03Last one to utilize this is a rotetn egg!

rellpifulofrellpifulof2013/03/17 03:129Np7hc <a href="http://aetgcjxxgibn.com/">aetgcjxxgibn</a>

ayuyifvhayuyifvh2013/03/18 23:11ism61m <a href="http://wfywhlbtivhy.com/">wfywhlbtivhy</a>

トラックバック - http://python.g.hatena.ne.jp/y_yanbe/20090129