我有一个习惯Db
类,具有基本操作。我正在尝试围绕它编写测试 - 在__init__
在我的班级中,我正在连接到我想避免的实际数据库(因为我只是编写单元测试,不需要连接到实际数据库)。
这是我的代码:
@mock.patch( 'mydb.Db' )
@pytest.mark.parametrize( "input,expected", [
(
{
'key' : "x" ,
'value' : 5 ,
} ,
[ "x = 5" ]
) ,
])
def test_where_statement( mock_db, input, expected):
mock_db.__init__.return_value = None
assert expected == mock_db.where( input[ "key"] , input[ "value" ] )._condition_list
它在我将 return_value 设置为 None 的行上失败 - 问题是:
def test_where_statement( mock_db, input, expected):
> mock_db.__init__.return_value = None
E AttributeError: 'instancemethod' object has no attribute 'return_value'
我只想模拟 init 函数,然后能够运行 where 函数(例如,它构建我的查询的 where 语句)。
我缺少什么?