我来自 JS 世界,我习惯于对所有可能由弱类型导致的情况进行彻底测试。这样,在函数内部我检查所有传入参数以符合某些标准。
例如,在 function createUser(username, id, enabled, role){}
中,我会检查 username
是否是一个字符串,id
是一个 UUID,status
是 bool 值,role 是一个字符串,必须是 'admin'、'user' 或 'system'。
我为这些情况创建了测试,以确保当我传递错误的参数时,测试会失败,我需要找到导致这种情况的错误。最后,我有相当多的测试,其中很多是类型检查测试。
现在,我正在使用强类型的 Swift。我用它来创建一个客户端应用程序,该应用程序使用来自 NodeJS 服务器端的数据。如果我想在 Swift 中创建一个类似的 createUser()
函数,似乎我需要的测试要少得多,因为类型检查在语言本身中。
认为强类型语言比弱类型语言需要更少测试的想法是否正确?有些测试在 Swift 中似乎是不必要的,整个测试过程似乎更轻量级。
我可以做些什么来通过以某种特定方式使用语言结构来编写更少的测试,并且仍然确保代码是正确的并且会根据定义通过测试?
最佳答案
使用 可选和非可选,守卫,如果让 可能会为您节省一些零支票
例如—— guard 声明
如果一个或多个条件不满足,保护语句用于将程序控制转移出范围。
守卫声明具有以下形式:
保护条件 else { 声明
更一般地说,阅读这个 - https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html
关于node.js - 强类型语言和弱类型语言在测试上的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35148722/