Mock wird vom Unterprozess nicht aufgerufenPython

Python-Programme
Anonymous
 Mock wird vom Unterprozess nicht aufgerufen

Post by Anonymous »

Eine Instanz der Klasse A startet einen Unterprozess, der eine Methode einer Instanz der Klasse B aufruft. Im wirklichen Leben funktioniert es wie erwartet, aber Komponententests schlagen fehl, weil das Scheinobjekt, das das Objekt der Klasse B ersetzt, keinen Aufruf meldet.
Minimaler Code:

Code: Select all

from multiprocessing import Process

class Main:
def __init__(self, mock):
self._mock = mock
process = Process(target=self.task)
process.start()
process.join()

def task(self):
self._mock.method()
Tests:

Code: Select all

from unittest.mock import Mock
from MinimalCode import Main

mock = Mock(unsafe=True)
def test_process():
main = Main(mock)
mock.method.assert_called()
Pytest-Ergebnis:

Code: Select all

_____________________________________________________________ ERROR collecting test_Process.py ______________________________________________________________
test_Process.py:9: in 
test_process()
test_Process.py:7: in test_process
mock.method.assert_called()
/usr/lib/python3.11/unittest/mock.py:902: in assert_called
raise AssertionError(msg)
E   AssertionError: Expected 'method' to have been called.
Wie soll ich Tests für Mocks schreiben, die in Unterprozessen aufgerufen werden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post