0
私はpytestを使用していて、関数がファイルに何らかのコンテンツを書き込むことをテストしたいと考えています。pytestを使ってファイルを作成して確実に作成する
MY_DIR = '/my/path/'
def my_function():
with open('{}myfile.txt'.format(MY_DIR), 'w+') as file:
file.write('Hello')
file.close()
は、私が作成され/my/path/myfile.txt
をテストしたいと正しい内容があります:だから私は、どのwriter.py
を持って
import writer
class TestFile(object):
def setup_method(self, tmpdir):
self.orig_my_dir = writer.MY_DIR
writer.MY_DIR = tmpdir
def teardown_method(self):
writer.MY_DIR = self.orig_my_dir
def test_my_function(self):
writer.my_function()
# Test the file is created and contains 'Hello'
をしかし、私はこれを行う方法とこだわっています。などのようなものとして、私がしようすべてを、:
import os
assert os.path.isfile('{}myfile.txt'.format(writer.MYDIR))
は、私が理解するか、正しくtmpdirを使用していない疑いがあるように私につながるエラーを生成します。
これはどのようにテストする必要がありますか? (もし私がpytestを使っている方法の残りの部分がひどいとしたら、それも私に教えてください)
あなたは、私は信じて困難を抱えているものの各部分に取り組む二つの質問があります。それらをチェックし、彼らが何らかの洞察を提供するかどうかを見てください。ここにはファイル[ここ](https://stackoverflow.com/questions/20531072/writing-a-pytest-function-to-check-outputting-to-a-file-in-python)への書き込みテストがあります。 [ここ](https://stackoverflow.com/questions/15801662/py-test-how-to-use-a-content-manager-in-a-funcarg-fixture)は、正しいコンテキストマネージャに対処するためのフィクスチャ。 – idjaw
あなたは[模倣する 'open()'](https://stackoverflow.com/questions/1289894/how-do-i-mock-an-open-used-in-a-with-statement-using-the- mock-framework-in-pyth)ので、実際にファイルを開くことはありませんが、正しく使用されているかどうかを確認するだけです。 –
詳細を表示できますか?どのようにtmpdirを生成するのですか?エラーとは何ですか? – phd