開いたファイルオブジェクトfile
を取得して、次のようにデータを書き込む関数があります。
def Write(self, file):
file.write("Data")
ここで、その関数をテストしたいと思います。ファイルにデータを書き込まないある種のストリームを使用してテストするのが適切だと思いました。StringIOクラス以外の仕事をするPython2.7クラスが見つかりませんでした。ただし、Python2.7では、このクラスはwrite関数にUnicode文字列を想定しています。そのため、クラスで関数を(file.write(u"Data"))
テストすることはできません。
回避策として、小さなダミークラスを作成しましたWrite
StringIO
class MyStream(object):
S = property(lambda self: self._S)
def __init__(self):
self._S = ""
def write(self, s):
self._S += s
Write
これで、関数を正常にテストできるようになりました。
私の質問:
同じトリックを行うネイティブPythonクラスはありますか?
提案のために事前に
Thxよろしくウォルタン