是否可以对属性进行side_effect?如果我查看Mock文档,它似乎只能在对象方法上使用.
我正在尝试测试以下内容:
def get_object(self):
try:
return self.request.user.shop
except Shop.DoesNotExist:
return None
Run Code Online (Sandbox Code Playgroud)
我希望Shop提出一个DoesNotExist异常.
猜猜也许我不够清楚,但我在谈论空洞模拟库.
Dan*_*aro 18
值得注意的是,现在有了这个PropertyMock课程:
>>> m = MagicMock()
>>> p = PropertyMock(side_effect=ValueError)
>>> type(m).foo = p
>>> m.foo
Traceback (most recent call last):
....
ValueError
Run Code Online (Sandbox Code Playgroud)
这个例子来自官方网站.
作者就这个问题发表了一篇博文。我选择了第一个解决方案,如下所示:
class UserMock(Mock):
@property
def shop(self):
raise Shop.DoesNotExist()
Run Code Online (Sandbox Code Playgroud)
http://www.voidspace.org.uk/python/weblog/arch_d7_2010_11_20.shtml#e1196
| 归档时间: |
|
| 查看次数: |
9623 次 |
| 最近记录: |