基于stdlib单元测试的行为驱动开发(bdd)框架

python-specfor的Python项目详细描述


它的灵感来源于ruby的rspec。 规范定义基于python decorator描述。

功能

  • 基于python decorator的“spec”定义
  • “spec”定义与unittest.TestCase
  • 兼容
  • 规范文件可以使用unittestnosetests
  • 执行
  • 类rspec期望(例如the[xxx].should.be[yyy]
  • 基于decorator的“mock”对象定义
  • 所有功能都可以独立使用:例如,使用spec和nose.tools
  • 从规范文件中标记文档生成器
  • 多python版本的单代码实现(2.5-2.7,3.1)

规范示例

# examples/sum_spec.py
from specfor import the, spec

empty_list = spec.of("empty list")
int_list = spec.of("int list")

@empty_list.before()
def prepare(its):
    its.list = []
    its.sum = 0

@int_list.before()
def prepare(its):
    its.list = [2, 3, 5, 7, 11]
    its.sum = 28

@empty_list.that("sum")
@int_list.that("sum")
def sum_spec(its):
    result = sum(its.list)
    the[result].should == its.sum

spec.publish(globals())

有关详细信息,请参见README.md

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

推荐PyPI第三方库


热门话题
javascript问题:通过URL用网站数据填充Textview   java TabLayout Android,如何用几个标签填充整个屏幕宽度,并用大量标签滚动?   Eclipse Java运行的文件不再存在于我的工作区中   安装两个Java版本时,使用Java的windows链接不起作用   java将多个图形添加到单个JPanel   java Kafka ConsumerFactory,带有两个Desiarizer   使用反射更改java类超类   当一致性测试失败时,java有没有办法让堆栈跟踪显示在控制台中   java映射到基元类型的HashMap的快速替代方案是什么?   java关闭一个jframe所有剩余的打开jframe都将关闭。   java为什么不推荐“使用getString()获取设备标识符”?   java值比较和值赋值之间有什么性能差异吗?   Java实体数组到JavaScript数组   java使用流将一个列表转换为另一个列表   在JTree中保存对象,但更改显示的名称(java swing)?   java“Hello world”Android应用程序,文件尽可能少,没有IDE,只有文本编辑器   java在方法之间传递值   java如何为项目数组创建ParseQuery?