2016-09-04 9 views
0

私は、構成ファイルの特定の行をチェックするために書きたいプログラムのテストを書いています。関数はテストのために余分な引数を取るべきですか?

たとえば、プログラムがAllowConnections- という行がSomeFile.confファイルに含まれていることを確認することがあります。

私の関数スタブは、私が調べようとしているファイルを知っているので、何も引数を取っていません。

さまざまなSomeFile.confファイルの動作をチェックするこの機能のテストを作成しようとしていますが、私はこれをどのように行うことができません。セットアップとティアダウンのテスト機能でSomeFile.confを変更することは可能ですが、これはテストするのが悪い方法のようです。テストのためだけにファイルの引数を受け入れることができるように関数を変更する必要がありますか?

+3

ファイルのパラメータにデフォルトの引数を指定することも、関数の2つのバージョンを作成することもできます.1つはパラメータ付きで、もう1つはパラメータなしで、もう1つはright引数で呼び出します。 –

+0

Pythonでメソッドをオーバーロードすることはできません。 –

答えて

1

テストするコードと実行するコードは同じにする必要があります。

ファイルとそのパーツに関連付けられたエラーを処理してからファイル形式(関数の実際の目的)を確認しているので、ファイル名の使用はお勧めしません。

あなたの関数の仕事は、ファイルの内容に特定の文字列が含まれているかどうかを確認することです。したがって、この関数は任意のタイプのコンテンツ要素(反復可能)を取る必要があり、キー文字列が見つからない限り、関数はNone/False/Fail条件を返す必要があります。

0

ファイル名のデフォルト値を使用して

def checkline_in_file(filename="SomeFile.conf"): 

としての機能を定義することは可能だろう。テストではオーバーライドすることができます。プロダクションでは、引数を付ける必要はありません。

その後、phbはすべてのファイル拡張子が正確に3文字でなければならないと判断した場合、それは1文字の変更です。

関連する問題