데이터베이스를 조롱하여 다음 방법을 테스트하기 위해 단위 테스트 케이스를 작성하려고합니다. 실제 데이터베이스 서버에 실제로 연결하지 않고 데이터베이스 연결을 조롱하는 방법. 나는 샘플 테스트 케이스를 시도했다. 그것이 올바른 방법인지 확실하지 않습니다. 내가 틀렸다면 나를 바로 잡아주세요.어떻게 단위 테스트 파이썬에서 데이터베이스 연결 pymysql?
//MySQL.py
class MySQL():
retry_interval = 20000
def link(self, server,port):
try:
return pymysql.connect(server, username='name', passwd='pwd', db='demo', int(port))
sys.stdout.write('Connected to database at {}:{}\n'.format(server,port))
except:
sys.stderr.write('Retry database connection in {} ms...\n'.format(self.retry_interval))
sleep(self.retry_interval/1000.0)
continue
//test.py
from unittest.mock import Mock, MagicMock
from unittest.mock import patch
import MySQL
@patch('MySQL.pymysql')
def testLink(self, mysql_mock):
mock_cursor = Mock.MagicMock()
mysql_mock.connect.return_value.cursor.return_value.__enter__.return_value = mock_cursor
한계를 어디에 * 당신 *의 가장자리 코드에 도달했습니다. 귀하의 경우'pymysql.connect'는 unittest의 범위 밖에 있으며 조롱을 받아야합니다. 모의이 제대로 호출되면 테스트해야합니다. –
@KlausD. 괜찮 감사. 시도해 보겠습니다 – Mythri