我正在使用JUnit进行一些用Java编写的测试,但我无法注意到检查对象“类型”的重点。这是我在Python测试套件中从未见过的。
Java是静态类型的,Python是动态类型的,不应该反过来这样吗?
答案 0 :(得分:15)
在动态类型语言中,开发人员经常遵循duck typing principle - “如果它看起来像鸭子,像鸭子一样走路,它就像一只鸭子”。只要对象完成了所有测试所需的操作,它究竟是什么类型的对象真的很重要吗?鸭子打字说没有。
答案 1 :(得分:5)
Python单元测试执行检查类型。每时每刻。事实上,这是他们正在做的唯一的事情。
Python是鸭子型的。鸭子打字意味着对象的类型由其行为定义。单元测试测试行为。他们,他们测试类型。
答案 2 :(得分:0)
除了在此处附上每个人对鸭子打字的看法之外,我还想指出types
模块的方向:
http://docs.python.org/library/types.html
...其类型集合对应于许多内置函数和其他常用类型,因此您可以在单元测试中轻松地明确断言您想要的任何类型。