用于测试web客户端的模拟web服务器

webmock的Python项目详细描述


webmock这个工具在一个短暂的端口上提供一个进程中的wsgi服务器。
它用于单元测试中,当被测系统建立出的http连接不易被模仿时。

创建一个wsgi应用程序,该应用程序表示您要创建的假web服务器。
这比看上去简单;例如:


def simple_app(environ,start_response):
status='200 ok'
headers=[('content-type','text/plain')]
start_response(status,headers)
return['hello,world!\ n']

接下来,激活测试服务器。
有几种方法可以做到这一点,但是它们都会产生一个端口号。

@模拟服务器(简单应用)
def test_web_请求(端口):
my_client.get_greeting('http://127.0.0.1:{}'。格式(端口))


>或手动启动和停止::

server.start()
my_client.get掼greeting('http://127.0.0.1:{}.format(port))
server.stop()

并允许测试在操作完成后进行断言。

其用法很简单:

mock app

app=mockapp()
使用mock_server(app):
..
app.assert_called_with('get/foo/bar')

请求已发出,并且它匹配``call`
*``assert``any`call(call)``--断言any请求匹配``call`
*``assert``has`u call([call,call,…],any`order=false)``--断言给定的调用都已发生。
如果``any order``为false,调用必须是连续的。

可以用包含方法和路径的字符串来描述调用。


模拟应用程序的行为可以通过一些小的方式进行调整。
对于任何更复杂的应用程序,请构建自定义的wsgi应用程序。

*``mock app(response='403 forbidden')``--自定义http响应(默认为“200 ok”)
*`` mockapp(body='hello world\n')`--自定义响应体(默认为空)
*`` mockapp(headers=[('x-auth','abc123')]`--自定义响应头

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

推荐PyPI第三方库


热门话题
java我应该关闭tcp连接吗?   java指定初始化一个有引用和没有引用的类之间的区别   Java JSON反序列化错误   java将InputStream插入PostgreSQL   java Android屏幕在活动启动时取消伪装   java两个字符串实例看起来相同,但它们的哈希代码不同   java如何创建**数字**而不是字符串的数组列表?   java我可以确定由正则表达式模式匹配的第一个字符集吗?   java以编程方式更改日期范围的日期格式   java Hibernate在加载时填充自动连接字段   java如何使两个不相关的实体(两个存储库)同时在一个项目中运行?可能吗?   使用singlechildevent检索java Firebase数据   在安卓中尝试动态添加片段时未找到java ID   在HTML中编码Java GB2312字符串无法正确显示   java在缓慢的消费卡夫卡上处理背压并避免重新平衡   由hibernate生成的java查询过于冗长