跳转到主要内容

testvars - 复杂断言中的占位符

项目描述

testvars - 复杂断言中的占位符

有时,在编写测试时,您可能需要断言测试中计算出的数据结构符合某些预期值,但预期值可能包含一些无法提前预测的组件,例如时间或生成的ID。在这种情况下,您可以选择以下选项:

  • 将断言分解成关于数据结构各个部分的多个断言。

  • 使用模拟/存根来控制时间、ID等无法预测的部分,使其可预测。

这两种方法通常都很繁琐,并且可能存在错误。

小巧的testvars包提供了许多情况下更易于使用的替代方案。该包提供了一个Vars

>>> import testvars
>>> vars = testvars.Vars()

Vars属性第一次比较相等时,比较成功并设置其值

>>> vars.x == 1
True

此时,值已设置,您可以对此进行断言

>>> vars.x
1
>>> vars.x > 0
True

进一步的比较是对此设置的值进行比较

>>> vars.x == 2
False

这在处理具有不可预测部分的数据结构时非常有用

>>> expected = {'id': vars.child_id, 'name':"Alex"}
>>> {'id': 32, 'name':"Alex"} == expected
True

当您不知道值是什么时,您还可以断言值之间的关系

>>> expected = {'id': vars.parent_id, 'name':'Cas',
...             'children': [vars.child_id]}
>>> expected == {'id': 42, 'name':'Cas', 'children':[32]}
True
>>> expected == {'id': 42, 'name':'Cas', 'children':[33]}
False
>>> [vars.y, 2, 3, vars.y] == [9, 2, 3, 9]
True
>>> [vars.z, 2, 3, vars.z] == [8, 2, 3, 9]
False

更改

1.0.0 (2017-07-07)

初始发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

testvars-1.0.0.tar.gz (3.5 kB 查看哈希值)

上传时间

由以下支持