Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 我需要一个关于如何使用TDD和合同设计的基本具体示例_Language Agnostic_Tdd_Design By Contract - Fatal编程技术网

Language agnostic 我需要一个关于如何使用TDD和合同设计的基本具体示例

Language agnostic 我需要一个关于如何使用TDD和合同设计的基本具体示例,language-agnostic,tdd,design-by-contract,Language Agnostic,Tdd,Design By Contract,我见过很多像和这样的问题。一些人认为TDD和契约式设计之间存在重叠,其他人说它们是互补的,我倾向于第二种,所以我需要一个非常基本、正确和完整的例子,用任何语言,甚至是伪语言来说明如何将它们结合使用。这是一个稍微棘手的问题,因为“测试驱动开发”(TDD)和“契约式设计”(DbC)暗示了您的开发过程(通常测试/契约是在代码之前编写的) 但是,由于您询问的是代码示例,因此您更感兴趣的是将测试和契约一起使用会是什么样子。下面是一个示例: def排序\u编号(nums:List[int])->List[i

我见过很多像和这样的问题。一些人认为TDD和契约式设计之间存在重叠,其他人说它们是互补的,我倾向于第二种,所以我需要一个非常基本、正确和完整的例子,用任何语言,甚至是伪语言来说明如何将它们结合使用。

这是一个稍微棘手的问题,因为“测试驱动开发”(TDD)和“契约式设计”(DbC)暗示了您的开发过程(通常测试/契约是在代码之前编写的)

但是,由于您询问的是代码示例,因此您更感兴趣的是将测试和契约一起使用会是什么样子。下面是一个示例:

def排序\u编号(nums:List[int])->List[int]:
'''
测验:
>>>对数字进行排序([4,1,2])
[1, 2, 4]
>>>对编号([])进行排序
[]
合同:
post:len(返回)=len(nums)
post:\uuuu返回\uuuu[0]