
Mock这个词在英语中有模拟的这个意思。Python3x中本身就自带了Mock库,(Python2x中还是单独的)Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。
简单的说,mock库用于如下的场景:
假设你开发的项目叫a,里面包含了一个模块b,模块b中的一个函数c(也就是abc)在工作的时候需要调用发送请求给特定的服务器来得到一个JSON返回值,然后根据这个返回值来做处理。如果要为abc函数写一个单元测试,该如何做?
一个简单的办法是搭建一个测试的服务器,在单元测试的时候,让abc函数和这个测试服务器交互。但是这种做法有两个问题:
1 测试服务器可能很不好搭建,或者搭建效率很低。
2 你搭建的测试服务器可能无法返回所有可能的值,或者需要大量的工作才能达到这个目的。
httmock库是基于Mock库的,它更方便于用requests的方式来返回接口的值。
使用pip命令来安装:
用法:
1 您可以使用它来模拟第三方API和在内部使用 requests 的测试库,有条件地使用 urlmatch 装饰器:
控制台显示:
2 all_requests 装饰器没有条件地阻止实际的请求。 如果您返回一个字典,它将映射到返回的“requestResponse”对象:
控制台显示:
3 如果你传递 Set-Cookie 头, requestResponsecookies 将包含这些值。 您也可以直接使用 response 方法,而不是返回一个dict:
控制台显示:
CC先生说:
要明白上面的例子,预备知识至少需要有:
-Python 中requests库的用法
-Python中装饰器的用法
or 你直接套用上面的用法就可以返回第三方接口或者依赖的模块的值了。
以上我按照下面的步骤来学习并安排计划的:
第一部分:
JAVA语言基础知识。包括异常、IO流、多线程、集合类、数据库。(切记基础知识一定要时时刻刻巩固)
要求:对java的封装,生命周期等有一定的了解;
异常------掌握try-catch-finally的使用
IO流------掌握字节流、字符流和对象序列化的处理。熟练使用各种输入、输出流类(InputStream、 OutputStream、FileInputStream、FileOutputStream、DataInputStream、 DataOutputStream、BufferedInputStream、BufferedOutputStream、Reader、Writer、 InputStreamReader、OutputStreamWriter、BufferReader、BufferedWriter、 ObjectInputStream、ObjectOutputStream)。
多线程-------掌握多线程实现的两种实现方法,分别是继承Thread类与实现Runnable接口。理解线程间的同步与互斥。
集合类-------掌握Set、Collection、Map、List、Iterator、Enumeration接口的使用,掌握HashSet、ArrayList、Vector、HashMap、HashTable类的使用。
数据库-------掌握JDBC API的使用,包括DriverManager类、Connection接口、Statement类和接口、PreparedStatement接口、ResultSet接口。
还有了解java反射机制,对Java15的新功能必须有了解与使用,泛型等。
另外-------理解Unicode、GB2132、GBK、UTF-8、ISO8859编码方式。
参考:《Java编程思想》、张孝祥视频教学。
第二部分:
JAVA网络编程。包括Socket、RMI、HTML、XML、JSP、JavaBean、Servlet。
要求:Socket--------了解javaio包中的套接口类和服务器套接口类的使用。
RMI--------掌握RMI基本工作原理、掌握定义远程服务接口类、远程接口类、客户端调用类和部署、编译RMI应用程序。
HTML--------了解HTML语言的语法、各种标签。
JSP-------掌握JSP20语法、隐含对象、EL、JSTL11、JSP自定标签。
JavaBean-------理解JavaBean的特点和事件模型。
XML--------了解XML语言的语法、DTD、Schema。
Servlet---------掌握>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)