4
ちょっとすべて私はテストしようとしているクラスメソッドを持っています.2つのパッチメソッド 'ConfigB'が必要です。 INIT 'と 'LISTDIR ConfigB.ConfigB 'しかし、それはありません':モックパッチを適用し、戻り値がのために働く、今os.listdirの模擬パッチがunittestingのために動かない
import unittest
import unittest.mock imort MagicMock
import mock
from FileRunner import FileRunner
class TestFileRunner(unittest.TestCase):
@mock.patch('ConfigB.ConfigB.__init__')
@mock.patch('os.listdir')
def test_methodscalled(self, osListDir, cfgB):
cfgA = MagicMock()
fileRunner = FileRunner()
cfgB.return_value = None
osListDir.return_value = None
fileRunner.runProcess(cfgA)
を:
from os import listdir
from config.ConfigB import ConfigB
class FileRunner(object):
def runProcess(self, cfgA)
cfgB = ConfigB(cfgA)
print(listdir())
私は、次のテストでは、設定しました' 'os.listdir'では動作しません。 print(listdir())メソッドが実行されるとき、パッチされた戻り値で指定されたとおり、現在のディレクトリのファイルのリストを取得します。どんな考えが間違っているのでしょうか?
あなたのアバターは、画面上の髪の毛のように見えます。 – user2357112
それはトリックです。 –
はい、うまくいきました! @ mock.patch( 'os.listdir')を@ mock.patch( 'FileRunner.listdir')に更新し、期待値を返しています。 – EliSquared