Wie würden Sie eine einfache Methode testen, die eine andere Methode aufruft? Ich versuche, die wssender Methode zurzeit zu prüfen.Unit_test eine Methode, die eine andere Methode aufruft, die der Komponententest nicht kennt
in worker.py
----------------
class Worker(self):
def __init__(self, ws)
self.ws = ws
def wssender(self,str):
newstr = '<br>{0}'.format(str)
self.ws.sendMessage(newstr.encode())
und der Testcode
in unit_test.py
-----------------
class SimpleTest(unittest.TestCase):
def test_wssender(self):
msg = 'test send message'
wss=worker.Worker
wss.wssender(wss, msg)
expected = "<br>test send message"
self.assertEqual(<something>, expected)
Es gibt zwei Probleme. Wenn ich diesen Test durchführe, bekomme ich. (Ws ist eine Web-Buchse)
AttributeError: type object 'Worker' has no attribute 'ws'
und wssender nichts zurückliefert, so dass ich nicht sicher bin, was in diesem Fall zu prüfen.
Sie injizieren 'ws' (ich nehme Websocket an) als eine Abhängigkeit zu' Worker', was gut ist. Das heißt, Sie können es in Ihrem Testcode durch einen Mock ersetzen und anschließend verifizieren. Sehen Sie sich in [unittest.mock] (https://docs.python.org/3/library/unittest.mock.html) um. – Tagc
'wss = worker.Worker' sollte' wss = worker.Worker (ws) 'sein. Und Sie können 'ws' verspotten. –