-2

私の課題の一部は、各関数のテストを作成することです。これはちょっと長いですが、私はとても混乱しています。
この関数の下にリンクを置いたので、最初のコードが非常に長いため、どのように見えるかがわかります。

def load_profiles(profiles_file, person_to_friends, person_to_networks):
    '''(file, dict of {str : list of strs}, dict of {str : list of strs}) -> NoneType
    Update person to friends and person to networks dictionaries to include
    the data in open file.'''

    # for updating person_to_friends dict
    update_p_to_f(profiles_file, person_to_friends)
    update_p_to_n(profiles_file, person_to_networks)

コード全体をここに示します: http://shrib.com/8EF4E8Z3、メインブロックでテストしたところ、動作しました。これは、提供されたテキスト ファイル (profiles_file) で、変換に使用しています: http://shrib.com/zI61fmNP

これのテストケースを実行するにはどうすればよいですか? どのようなテスト結果がありますか? それとも、私は十分に具体的ではありませんか?

鼻のインポート a3_functions のインポート

def test_load_profiles_

if name == ' main ': noise.runmodule() そこまで行ったので、関数に対して何をテストできるかわかりませんでした。

4

2 に答える 2

1

これまでに作成したコードが「mycode」というモジュールにあると仮定しましょう。

testmycode という新しいモジュールを作成します。(つまり、testmycode.py という名前の python ファイルを作成します)

そこに、テストしたいモジュール (mycode) をインポートします。

testupdate() という関数を作成します。

その関数では、最初に、有効であると予想されるテキスト ファイル (file.write を使用) を書き込みます。次に update_p_to_f で更新します。assert を使用して、期待どおりに動作したことを確認します。テキストファイルの読み込みテストです。

次に、testupdate_write() という 2 番目の関数を記述して、コードにファイルへの書き込みを許可し、書き込み内容が正しいことを確認します。

テストを実行するには、(コマンドラインで) を使用します。

 nosetests -sx testmycode.py

testmycode をロードし、test で始まるすべての関数を実行します。

于 2012-04-04T09:59:38.747 に答える
0

おそらく、プログラムの全体的な出力が正しいことと、プログラムの個々の部分が正しいことの両方をテストしたいと思うでしょう。

  • @j13r は、完全な実行のためにプログラムの全体的な正確性をテストする方法を既にカバーしています。
  • あなたは、4 つのヘルパー関数があると述べています。これらのテストを個別に作成できます。

コード全体をテストするよりも、より多くの具体的な方法で各部分をテストできるため、コードの小さな部分をテストすることは役に立ちます。

unittestモジュールは、テストを実行するためのフレームワークです。

于 2012-04-04T11:05:15.820 に答える