Python 3.4 asyncio
라이브러리를 사용하여 코드에 대한 단위 테스트를 작성하는 가장 좋은 방법은 무엇입니까 ? TCP 클라이언트 ( SocketConnection
) 를 테스트한다고 가정합니다 .
import asyncio
import unittest
class TestSocketConnection(unittest.TestCase):
def setUp(self):
self.mock_server = MockServer("localhost", 1337)
self.socket_connection = SocketConnection("localhost", 1337)
@asyncio.coroutine
def test_sends_handshake_after_connect(self):
yield from self.socket_connection.connect()
self.assertTrue(self.mock_server.received_handshake())
기본 테스트 실행기를 사용하여이 테스트 케이스를 실행하면 메서드가 첫 번째 yield from
명령 까지만 실행되고 그 후에는 어설 션을 실행하기 전에 반환 되므로 테스트는 항상 성공 합니다. 이로 인해 테스트가 항상 성공합니다.
이와 같은 비동기 코드를 처리 할 수있는 미리 빌드 된 테스트 실행기가 있습니까?
loop.run_until_complete()
대신 사용할 수 있습니다yield from
. 을 (를) 참조하십시오asyncio.test_utils
.