2012-04-02 2 views
2

私はテスト開発に着手し始めています。テストするものを理解するのには苦労しています。そこには多くのfoobarの例がありますが、私は自分のプロジェクトユニットをテストする方法を知るのが難しいです。これはあなたの関数であった場合Pythonノーズテストの例

def getLines(filename): 
    try: 
     f = open(filename,'rb') 
     lines = f.readlines() 
     f.close() 
    except: 
     break 
    return lines 

、何をテストします:たとえば、簡単なリターンリストとして、テキストファイルの行は、この機能を取りますか?コードを書く必要はありません。好きなだけ広義に教えてください。

おかげ

+1

なぜこのような機能を最初に持っていますか? 'open(filename、 'rb')をf:lines = f.readlines()'として使用すると、抽象化する必要があるとは限りません。 – Amber

+0

私はそれが好きですが、 'with'で例外を処理できますか? – MFB

+0

書かれたコードは、そのまま例外を「処理」しません。しかし、はい、 'with'文を' try'/'except'ブロックで囲むことができます。 – Amber

答えて

4

ファイル名が無効であれば、あなたの関数は空のリストを返しますし、希望、すべての行でリストを返し、ファイル名が有効な

ある場合は、ファイル名と番号をKnownValues辞書を定義することができますそのようなファイルの行、次に

file1 -> 20 
file2 -> 30 
file3 -> 0 // invalid entry 

のあなたは関数が

を返して、リスト内の項目数をカウントするためにassertEqualを書くことができます210
-2

コンピュータプログラミングでは、単体テストは、ソースコードの個々の単位をテストして、使用に適しているかどうかを判断する方法です。ユニットは、アプリケーションのテスト可能な最小の部分です。手続き型プログラミングでは、ユニットは個々の関数または手続きであってもよい。単体テストはプログラマによって作成されるか、時にはホワイトボックステスタによって作成されます。

あなたの関数は統計的に文書の行数を入力するために使用されます。入力パラメータはファイルオブジェクトなので、ファイルの行数を入力として準備することができます。次にassertEqualを記述して関数が返すリスト内の項目。

また、例外を確認する必要があります