Как бы вы протестировали простой метод, который вызывает другой метод? Я пытаюсь протестировать метод wssender в настоящее время.Unit_test метод, который вызывает другой метод, который модульный тест не знает о
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())
и тестовый код
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)
Есть два вопроса. При выполнении этого теста я получаю. (WS является веб-гнездо)
AttributeError: type object 'Worker' has no attribute 'ws'
и wssender не возвращает ничего, так что я не уверен, что испытать в этом случае.
Вы вводите 'ws' (я полагаю, websocket) как зависимость от« Worker », что хорошо. Это означает, что вы можете заменить его на макет в тестовом коде, а затем выполнить проверки на нем. Изучите использование [unittest.mock] (https://docs.python.org/3/library/unittest.mock.html). – Tagc
'wss = worker.Worker' должно быть' wss = worker.Worker (ws) '. И вы можете высмеивать 'ws'. –