我有这样的代码:
//app1.service.py
database = {
1: "Alice",
2: "Bob",
3: "Charlie"
}
def get_user_from_db(user_id):
return database.get(user_id)
//app1.tests.test_service.py
import pytest
from unittest import mock
from app1.service import get_user_from_db
@mock.patch("app1.service.get_user_from_db")
def test_get_user_from_db(mock_get_user_from_db):
mock_get_user_from_db.return_value = "Mocked Alice"
username = get_user_from_db(1) # If I change it to mock_get_user_from_db(1) everything works fine
assert username == "Mocked Alice"
当我在命令行中运行‘pytest’时,我得到以下结果:
E AssertionError: assert 'Alice' == 'Mocked Alice'
E - Mocked Alice
E + Alice
在我正在观看的教程中,get_user_from_db(1)返回"Mocked Alice",,但在我的本地机器中,它只返回"Alice".当我使用它时,它工作得很好
username = mock_get_user_from_db(1)
而不是
username = get_user_from_db(1)
Question: It this the expected behaviour that username = get_user_from*db(1) returns "Alice" in my case?(在YouTube视频中,它返回"被嘲笑的爱丽丝")or am I just doing something wrong?