提供代码契约和断言的库。
code-contracts的Python项目详细描述
code contracts是一个提供以下功能的库:
- 合同
- 在输入函数或方法时强制要求的函数-通常也称为preconditions
- 断言
- 在函数或方法主体中施加要求的函数。这不是一套完整的断言; 相反,它们是对unittest.testcase
这个库的目标不是使python成为静态类型语言。相反,它旨在帮助您定义 在代码执行之前,应该从代码中获取,这样您就可以更容易地跟踪和防止错误。
下面是如何使用合同:
fromcontractsimportcontractdefbuild_rocket(name,model,company):contract.is_not_empty(name)contract.is_greater_than(model,0)contract.is_not_empty(company)print("You built a {0} {1} rocket from {2}.".format(name,model,company))if__name__=="__main__":build_rocket("Falcon",9,"SpaceX")
下面是如何使用断言对上述函数进行单元测试:
importunittestfromcontractsimportassertionclassRocketTests(unittest.TestCase):deftest_build_rocket(self):assertion.does_not_raise(ValueError,build_rocket,"Falcon",9,"SpaceX")
code contracts正式支持python 3.3及更高版本。
安装
只需在您喜爱的终端中运行以下命令:
$ pip install code-contracts
文档
完整的文档可在http://contracts.readthedocs.io/找到。