mocky是一个类,帮助您创建用于doctests的mock对象。

Mock的Python项目详细描述


类mocky(object):
“mocky是一个类,它希望帮助您为测试设置mock
对象。它可以帮助您观察调用了哪些函数(使用了哪些参数)以及设置了哪些属性。


除非指定了名称,否则mocky的名称是“root”:

>;>;mocky()。name
“root”


让我们从设置一些变量的简单示例开始,这样我们就可以感受mocky是如何工作的。注意,属性访问
永远不会导致attributeerror。相反,对不存在的成员变量的属性访问< BR/>将产生另一个Mocky
实例:
BR/> & gt;f=Mocky(f′)>f<br/> f>b/>>;类型(异常)为mocky
true
>;>;异常为f。异常
true
>;f.a.c.r='fidelio'
将f.a.c.r设置为'fidelio'
>;>;f.a.c.r
'fidelio'

请注意,当我们将'f.a.c.r'设置为'fidelio'时,mocky打印出属性已设置。假设我们有一个函数'fun',
在给定对象上设置一些特殊变量:

>;>def fun(obj):
…如果是对象,请处理我:
…obj.there\u you='go'
>;>myobj=mocky('myobj')
>;>fun(myobj)
设置myobj.there\u you to'go'
>;>myobj.please\u process\u me=false
设置myobj.please\u process\u me to false
>;
mocky也支持呼叫。另一个函数对我们的测试对象做了一些
的工作:

>;>def-huven(字符):
…character.getstatus().hitpoints-=1
>;>;挨饿(mocky('hugo'))\doctest:+省略号
回溯(最后一次调用):

类型错误:不支持的操作数类型-=:“mocky”和“int”
>;>;ezequiel=mocky('ezequiel')
>;ezequiel.getstatus().hitpoints=0
调用ezequiel.getstatus()
设置ezequiel.getstatus().hitpoints为0
>;>;挨饿(ezequiel)
调用ezequiel.getstatus()
设置ezequiel.getstatus().hitpoints为-1

如果签名
相同,mocky将返回相同的值:

秘密是f。不寻常(password='unsafe')
调用f。不寻常(password='unsafe')
false

定义初始(self,name='root'):
自己。
自己。
定义调用(self,*args,**kwargs):
argsstr=”,'.join([repr(arg)表示arg in arg s])
keys=已排序(kwargs.keys())
kwargsstr=','.join([%s=%r%(key,kwargs[key])表示key in keys])
如果argsstr和kwargsstr:
allargs=','.join([argsstr,Kwargsstr])
其他:
allargs=argsstr或Kwargsstr


return self.\u calls[allargs]


def-repr(self):
return self.name



def-getattr(self,name):
return self.name
def-getattr(self,name):
def-getattr(self,name):
self.[name]=mocky(%s.%s%(self.name,name))
retretretself.
retretretself。
retretretself.dict(dict)dict(self.di[名称]

def\u setattr(self,name,值):
打印“将%s.%s设置为%r”%(self.name,name,v区域)
self.uu dict[[名称]=值

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在另一个承诺中解决一个承诺?   java验证字符串输入   如何在Java中将数组转换为链表   配置Logstash以从socket接收数据,并将其插入java中的Elasticsearch   swing构建在Java中以相同顺序运行的JFrame   java什么是工具箱的正确路径。getImage()?   java springbootgradleplugin是否随springboot版本一起移动?   升级gradle插件后,java gradle项目同步仍失败   java CXF服务调用失败,出现意外命名空间上的解组错误   Javaservlet。servlet ctakesrestservice的init()引发异常   java我需要什么正则表达式来读取这个值'12,'   java如何使用Xstream在现有xml文件中导入带有节点的字符串?   基于特殊字符的java子串   java hibernate从查询创建通用对象