|
|
1
2
问题不在TDD中,也不在Python中。首先,TDD并不能证明当所有测试都通过时,您的应用程序是好的。想象一下,例如multiplyby2()函数,它可以通过输入1、2、3和输出2、4、8进行测试,现在想象一下,您实现了multiplyby2作为平方。所有测试都通过了,代码覆盖率为100%,并且实现错误。你必须明白,TDD只能给你保证,一旦你的测试失败,你的应用程序就出了问题,没有什么比这更糟了。因此,正如其他答案中所建议的,问题在于您没有失败的测试。如果您使用了一些静态类型的语言,编译器会为您做这个测试,并抱怨使用了不存在的方法。这并不意味着您应该使用静态类型语言,它只是意味着您需要用动态类型语言编写更多的测试。 如果您对实现代码的正确性感兴趣,那么您应该查看契约式设计,以确保至少在运行时和正式规范期间的正确性,从而至少为某些算法提供证明,但我想这与标准编码相差甚远。 |
|
|
2
1
好的,我找到了解决办法。蟒蛇图书馆
下面是我最后得到的代码。 模型和服务定义:
以下是如何测试
如果重命名属性
|
|
|
3
0
在更改之前,根据当前用户的值,对象的行为应该有所不同。我们称之为谓词()。请原谅我的python;考虑一下这个伪代码:
好啊?所以,这是你的测试。让它过去。现在更改测试中的类,以便将当前用户重命名为活动用户。现在,无论是在第一个断言时,还是在第二个断言时,测试都将失败。因为您不再更改以前称为当前用户的字段的值,所以谓词在这两种情况下都将为假或真。现在您有了一个非常集中的测试,当类发生变化时,它会提醒您,从而使另一个测试的设置失效。 |
|
|
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 4 年前 |
|
|
Justin · Python自属性重命名 8 年前 |
|
|
Sabutobi · 长dict属性行的重构 8 年前 |
|
|
Falco Alexander · 简单LINQ重构/样式 8 年前 |
|
|
05bs001 · Euler 12需要优化 8 年前 |
|
|
slartidan · 如何将lambda表达式重构为方法引用? 8 年前 |
|
|
Alex · 在Java类中频繁使用与映射键相同的字符串[已关闭] 8 年前 |