我想测试功能:
#foo_module.py
def foo(*args, **kwargs):
bar = SomeClass(*args, **kwargs)
# actions with bar
del bar
我选择测试模拟库。我的测试结果如下:
@mock.patch('path.to.foo_module.SomeClass')
def test_foo(self, mock_class):
foo()
mock_class.assert_called_once_with()
但我怎么能检查“del bar”的执行情况呢?
调用mock_class.return_value.__del__
将引发AttributeError。你知道吗
升级版:
抱歉,我没有提到SomeClass是django.contrib.gis.gdal.datasource.DataSource
。数据源已重写__del__
方法:
def __del__(self):
"Destroys this DataStructure object."
if self._ptr and capi:
capi.destroy_ds(self._ptr)
在这种情况下del bar
在功能之外有作用。所以我应该简单地模拟capi
并检查capi.destroy_ds.called
。你知道吗
检查dir()结果以查看该对象是否仍然存在:
对于此脚本:
您可以得到输出:
相关问题 更多 >
编程相关推荐