使用mock对conn()进行单元测试:
应用程序.py
import mysql.connector
import os, urlparse
def conn():
if "DATABASE_URL" in os.environ:
url = urlparse(os.environ["DATABASE_URL"])
g.db = mysql.connector.connect(
user=url.username,
password=url.password,
host=url.hostname,
database=url.path[1:],
)
else:
return "Error"
测验py
def test_conn(self):
with patch(app.mysql.connector) as mock_mysql:
with patch(app.os.environ) as mock_environ:
con()
mock_mysql.connect.assert_callled_with("credentials")
错误:未调用Assertion mock_mysql.connect.assert_called_with
.
我相信这是因为"Database_url"不在我的补丁操作系统中.由于该测试调用没有被调用到mysql_mock.连接
问题:
1为了使测试代码正常工作,我需要做哪些更改?
2.我是否也必须修补"urlparse"?