2017-01-15 8 views
0

私は内部的にlocateコマンドを使用するpythonユーティリティを持っています。これは、ファイル名を対応する完全なファイルパスに置き換えます。私のコードをダミーのファイル構造でテストしてください

>>> complete_path('cd baz') 
'cd foo/bar/baz' 

このコマンドの出力はすべてのシステムで可変であるため、この機能に対応するテストを作成するにはどうすればよいですか?固定のダミーファイル構造でこのコードを実行し、固定パスで出力をアサートする必要がありますか?どうやってするか?

+0

これは、使用しているテストフレームワークによって異なります。しかし、テストするのは簡単な機能のように思えます。使用している外部ライブラリへの呼び出しをMonkeypatchします。 –

答えて

1

私はあなたの関数がどのようなものか知らないが、このようなものは、それを行うだろう、あなたはpytestを使用している場合:

def test_complete_path(monkeypatch): 
    def mockreturn(path): 
     return 'cd /abc/def/g' 

    monkeypatch.setattr(external_module, 'external_function', mockreturn) 
    res = complete_path('cd g') 
    assert res == 'cd /abc/def/g' 

は、詳細はhttp://doc.pytest.org/en/latest/monkeypatch.htmlを見てください。

関連する問題