用于链接命令和增量检查结果的实用程序
assertionchain的Python项目详细描述
断言链[构建状态](https://travis ci.org/justiniso/assertionchain.svg)(https://travis-ci.org/justiniso/assertionchain)[![覆盖状态](https://coveralls.io/repos/justiniso/assertionchain/badge.svg?branch=master)(https://coveralls.io/r/justiniso/assertionchain?branch=master)
assertionchain是一组必须按顺序执行的命令的包装器。
met
简单的例子:
.do(lambda:1+1,两个数字相加)\
.expect(3,message='step“{step}”没有得到预期值{expected},值是:{actual}')\
.perform()
对于初学者来说,链
鼓励用户逐行提供有关正在执行的每个步骤的详细信息。因此,如果您想了解上述断言失败的原因,就必须构造一个详细的错误消息,指示实际值和预期值,以及生成实际值的步骤。这并不是特别困难:
val=1+1
message='添加1+1没有产生预期值{expected},值是:{actual}'。格式(
expected=expected,
actual=val
)
assert val==expected,message
,但是每次运行命令时都必须重复此操作会变得非常乏味。assertionchain提供了这个
api,用于对链中执行的每个操作执行增量检查,减少了用
来输入所有这些操作的开销。
例如,假设我们有一套与文件交互的函数(get_contents、write_contents、delete_file)。他们的合同规定
每个函数都将返回true、false或一个值,这取决于它们是否成功。我们可以使用
assertionchain来确保每个步骤都成功:
new\u contents='myfile'
.do(lambda:write_contents(filename,new_contents),“write file content”).expect(true,operator=”是“)\
.do(lambda:write_contents(filename,“),“write empty file content”).expect(true,operator=”是“)\
.perform()
删除文件
assertionchain().do(lambda:delete_file(filename),'删除文件').expect(true,operator='is').perform()
assertionchain是一组必须按顺序执行的命令的包装器。
met
简单的例子:
.expect(3,message='step“{step}”没有得到预期值{expected},值是:{actual}')\
.perform()
对于初学者来说,链
鼓励用户逐行提供有关正在执行的每个步骤的详细信息。因此,如果您想了解上述断言失败的原因,就必须构造一个详细的错误消息,指示实际值和预期值,以及生成实际值的步骤。这并不是特别困难:
message='添加1+1没有产生预期值{expected},值是:{actual}'。格式(
expected=expected,
actual=val
)
assert val==expected,message
,但是每次运行命令时都必须重复此操作会变得非常乏味。assertionchain提供了这个
api,用于对链中执行的每个操作执行增量检查,减少了用
来输入所有这些操作的开销。
例如,假设我们有一套与文件交互的函数(get_contents、write_contents、delete_file)。他们的合同规定
每个函数都将返回true、false或一个值,这取决于它们是否成功。我们可以使用
assertionchain来确保每个步骤都成功:
.do(lambda:write_contents(filename,new_contents),“write file content”).expect(true,operator=”是“)\
.do(lambda:write_contents(filename,“),“write empty file content”).expect(true,operator=”是“)\
.perform()
删除文件
assertionchain().do(lambda:delete_file(filename),'删除文件').expect(true,operator='is').perform()