模拟给予"加注除了"错误

时间:2018-01-28 05:57:48

标签: python django unit-testing

我正在尝试对我的程序进行单元测试。
我的模拟对象中有副作用

from models import MyObject
     mock_obj.objects.get.side_effect = mock.Mock(side_effect=MyObject.DoesNotExist)


当我在我测试的函数中有这个时,测试工作并通过:

import models

   try:
        obj = models.MyObject.objects.get(id=1)
    except Exception:
        return True

但是,当我将其更改为:

import models
        try:
            obj = models.MyObject.objects.get(id=1)
        except models.MyObject.DoesNotExist:
            return True

它给了我这个而不是返回True:

>     Traceback (most recent call last):
>       File "/home/test/test_my_function.py", line 40, in test_get_job_not_exist
>         response = my_function.my_function(request_mock, 1)
>       File "/home/handlers/my_function.py", line 35, in get_job_with_id
>         obj = MyObject.objects.get(id=id)
>       File "/local/lib/python2.7/site-packages/mock/mock.py", line 1062, in __call__
>         return _mock_self._mock_call(*args, **kwargs)
>       File "/local/lib/python2.7/site-packages/mock/mock.py", line 1118, in _mock_call
>         raise effect
>     DoesNotExist

为什么会这样? MyObject是一个Django模型对象

0 个答案:

没有答案