Python测试双倍平台(模拟、存根和假体)
项目描述
欢迎来到ludibrio
- 作者:
Gustavo Rezende <nsigustavo@gmail.com>
- 贡献者:
Diego Pinheiro <me@dmpinheiro.net>
Hugo Lopes <hltbra@gmail.com>
Rodrigo Manhães <rmanhaes@gmail.com>
Rebeca Motta <becacmotta@gmail.com>
安装
Ludibrio已在PyPi注册。如果您有pip、setuptools或Distribute,可以使用以下命令安装mock:
$ sudo easy_install ludibrio
下载
最新官方版本是3.0.2。以下是获取它的方法:
http://pypi.python.org/pypi/ludibrio/3.0.2
文档
请参阅http://ludibriar.appspot.com/以获取当前文档。
参与其中!
Ludibrio的开发可以在github上查看和跟踪。
http://github.com/nsigustavo/ludibrio
使用‘git’检索源代码
$ git clone git://github.com/nsigustavo/ludibrio.git
以“开发模式”安装包并使用doctest命令运行测试
$ sudo easy_install doctestcommand $ git clone git://github.com/nsigustavo/ludibrio.git $ cd ludibrio $ sudo python setup.py develop $ cd ludibrio $ doctest
简而言之
测试双倍是模拟真实对象行为的假对象,用于测试目的。
模拟
模拟是预先编程了期望的对象,这些期望构成了它们预期接收的调用规范。
>>> from ludibrio import Mock >>> with Mock() as MySQLdb: ... con = MySQLdb.connect('server', 'user', 'XXXX') ... con.select_db('DB') >> None ... cursor = con.cursor() ... cursor.execute('select * from numbers') >> None ... cursor.fetchall() >> [1,2,3,4,5]
>>> con = MySQLdb.connect('server', 'user', 'XXXX') >>> con.select_db('DB') >>> cursor = con.cursor() >>> cursor.execute('select * from numbers') >>> cursor.fetchall() [1, 2, 3, 4, 5] >>> MySQLdb.validate() #passed
存根
存根为测试期间的方法调用提供预定义的答案。
>>> from ludibrio import Stub >>> with Stub() as x: ... x.anything() >> 'response'
>>> x.anything() 'response'
为任何外部模块进行简单模拟或存根
Ludibrio 还提供了一种替换模式,这意味着如果将一个 “from … import …” 语句定义到 ‘with’ 范围内,重放机制将返回一个模拟对象来替换整个 Python 解释器(包括任何模块等)命名空间中的原始对象。下面有一个简单示例来说明如何使用它。
>>> from ludibrio import Stub >>> with Stub() as time: ... from time import time ... time() >> 171
>>> from time import time >>> time() 171
代理
Ludibrio 两个在其它模拟系统中找不到的强大功能是代理现有对象,或者修补真实实例或类。
当一个对象被代理时,Ludibrio 创建一个包含对真实对象引用的测试替身对象,允许表达式直接通过它(无论是否被模拟,默认或按请求)。
>>> from os.path import splitext >>> with Stub(proxy=splitext) as splitext: ... splitext('ludibrio/stubed.py') >> ('/temp/temp','.temp')
>>> splitext('mock.py') ('mock', '.py') >>> splitext('ludibrio/stubed.py') ('/temp/temp', '.temp')
项目详情
关闭
ludibrio-3.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 271a2a866b00a059d9330dc1213d182731121c83088a42f6b3e7f24777b522db |
|
MD5 | d83f752b7cad8baa9c6b6aa92605cab3 |
|
BLAKE2b-256 | 5cb7960bf226748b919729c084c2fd49f603523bfd070c9d997af5ac7d9327d6 |