Ich versuche, Mock.Patch zu verwenden, um meinen Code zu testen, aber ich bekomme ein seltsames Ergebnis. Dies ist der wichtige Teil des Codes:Rückgabewert Probleme mit Unittest patch() in Python
@mock.patch('benchmark.scenarios.networking.feature.ssh')
@mock.patch('benchmark.scenarios.networking.feature.subprocess.call')
def test_run_for_success(self, mock_subprocess, mock_ssh):
mock_ssh.SSH().execute.return_value = (0, '100', '')
mock_subprocess.call().return_value = 'mocked!'
result = {}
self.feature.run(result)
Wenn ich ssh in meinem Code ausführen, ich den zurückgegebenen Wert erhalten: (0, '100', '')
, gut! Allerdings, wenn ich subprocess.call()
laufen bekomme ich als Rückgabewert:
<MagicMock name='subprocess.call()' id='139806699670096'>
Was mache ich falsch? Ich würde gerne "verspottet" werden! als zurückgegebener Wert
Ihre Mock ist 'benchmark.scenarios.networking.feature.subprocess.call', dann bist du die' call' Methode auf das spöttische - Sie müssen nur die 'call' einmal und der Schein sollte mit dem Import übereinstimmen. – jonrsharpe