栈桥:用于休息的doctest(ful服务)


trestle的Python项目详细描述

trestle:doctest for rest(ful services)
--------



about
~about



trestle是一个nose插件,允许您为
web应用程序(或shell命令,但稍后将详细介绍)编写可测试文档。

用一组特殊指令来表示用于测试的**fixture**(包括http或模拟http客户端),通过
客户端发送的每个**请求**,以及被测应用程序的**预期响应**的CTured文本`(类似于这个文档)。


例如,栈桥测试文档可能如下所示::


frog是一个处理青蛙的web服务。


您可以列出可用的青蛙。

…请求:列出可用的青蛙


获取/青蛙



响应采用纯文本格式。

…回答:

牛蛙
毒镖
三折射




请求:获取牛蛙的详细信息

回答:


牛蛙是真正的大青蛙。
……


否则,返回404回答。

……请求:获取非青蛙的详细信息。回答:

404…



"蟾蜍"不是青蛙。



请求:创建一个青蛙

post/frogs/pouched+frog
响应::

201创建







fixtures::关于

每个要测试的文档都需要fixtures指令。
指令必须命名python模块。模块必须包含
以下属性:

client
要用methods.get()、.post()、
.put()等方法调用的客户端应用程序。每个方法必须至少接受参数url和
数据,并且可以接受其他方法,但可能不需要它们。` paste.fixtures.testapp``是这样一个客户机,尽管它本身只支持.get()和.post()。


,并且可能包含以下函数:


setup_all(cls)
setup fixture在第一个请求之前运行。

teardown_all(cls)
teardown fixture在最后一个请求之后运行uest.

每个安装(inst)
每个请求之前运行安装夹具。


每个拆卸夹具(inst)
每个请求之后运行拆卸夹具。

请求``指令,后跟
一个或多个``..响应``指令。''.request``指令使用fixtures模块中定义的客户端定义要发送到被测web应用的请求。


请求:一个简单的get




请求:post

post/foo/bar
a=1&b=2



回答:小马!1!
……



…注意:在一行中用`..``结束每个块,以避免可能导致块后面的文本被丢弃的rst解析错误。

ng过程很简单:使用fixtures模块中定义的
客户机执行每个请求,并将文本中该请求后面的每个预期响应
与实际的
响应进行比较。如果所有响应都匹配,则测试通过。否则,它将失败。raw::html

<;p>;给出了一个<;span class="pass">;令人愉快的绿色
背景<;/span>;,失败一个<;span class="fail">;险恶的红色<;/span>;。
失败匹配的详细信息包含在
失败示例之后。<;/p>;



fixture命令
^^^^^^^^^^^^^^^^^^^

虽然通常最好使测试只依赖于公共api
,而不是内部细节或外部性,但有时(例如,当测试
依赖时间的操作时)是不可能或不合理的。对于那些时候,
对请求使用**:setup:**参数。在运行
请求之前,exec参数
的主体将在fixture模块的上下文中求值。当然,还有一个**:teardown:**参数,它将在运行请求并处理响应之后执行。下面是一个
示例::

…请求::获取特殊的东西
:setup:client.set廑special(true)
:teardown:client.set廑special(false)


get/special




shell示例
^^^^^^^^^^^^^^^^^^^^^

trestle也支持shell示例。执行shell示例时,将执行给定的
shell命令,并且该命令生成的stdout与使用普通doctest
输出检查器的`..shell``示例的主体相比
。一个简单的shell示例如下:shell::echo"hello"

..

shell示例支持标准的``:setup:``和`:teardown``选项,如
以及其他三个选项:``:cwd:```,它们可用于设置shell
命令的cwd;`:post:```,它命名了一个可用于后处理的fixture callss
在将shell命令的输出与预期的
输出和标志`:stderr:``进行比较之前,将其与shell命令的stderr输出进行比较,而不是与stdout(默认值)进行比较。

_`重组文本`:http://docutils.sourceforge.net/rst.html
…_` paste.fixtures.testapp`:http://pythonpaste.org/testing-applications.html

推荐PyPI第三方库


热门话题
twirlip xaled midterm slapper checkstyle phonetise yxspkg 化是 mcloud pyrun guangzhou 规范 takagi tlslite fuzzing musicbrainzngs vmap obfs appeus waterfall pocoui 线性化 ln 人马座 pet gtp figure juggler propublica crawly ckiptagger pythonproject 股票代码 pendulum writers lupa interactive netflow 跨度 trapify drops projex bin builder evtx pcf8523 calchylus socorro district pumpwood