別のメソッドを呼び出す単純なメソッドをどのようにテストしますか?私は現在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)
2つの問題があります。このテストを実行するときに私は得る。私はこのケースでテストすることはよく分からないので
AttributeError: type object 'Worker' has no attribute 'ws'
と wssenderは何も返しません(WSは、Webソケットです)。
'ws'(私はwebsocketと仮定しています)を' Worker'への依存として注入しています。つまり、テストコードの疑似コードに置き換えて、検証コードを実行することができます。 [unittest.mock](https://docs.python.org/3/library/unittest.mock.html)を参考にしてください。 – Tagc
'wss = worker.Worker'は' wss = worker.Worker(ws) 'でなければなりません。そしてあなたは 'ws'を模倣することができます。 –