强类型和弱类型语言之间的测试差异

时间:2016-02-02 08:48:27

标签: node.js swift unit-testing types

我来自JS世界,我习惯于对所有可能由于打字不良而导致的案例进行全面测试。这样,在函数内部,我检查所有传入的参数以符合某些标准。

例如,在.class中,我会检查function createUser(username, id, enabled, role){}是否为字符串,username是否为UUID,id是否为布尔值,而角色是必须的字符串be' admin','用户'或者' system'。

我为这些情况创建测试,以确保当我传递错误的参数时,测试失败,我需要找到导致这种情况的错误。最后,我有很多测试,其中很多都是类型检查测试。

现在,我正在使用强类型的Swift。我用它来创建一个消费NodeJS服务器端数据的客户端应用程序。如果我想在Swift中创建一个类似的status函数,似乎我需要更少的测试,因为类型检查是在语言本身。

认为基本上强类型语言需要的测试少于弱类型语言是否正确?在Swift中似乎没有必要进行一些测试,整个测试过程似乎更轻量级。

我是否可以通过某种特定的方式使用语言结构来编写更少的测试,并且仍然可以确保代码是正确的并按定义通过测试?

1 个答案:

答案 0 :(得分:0)

使用 期权和非期权,守卫,如果让 可以节省一些零检查

例如 - 警卫声明

如果不满足一个或多个条件,则使用保护声明将程序控制转移到范围之外。

警卫声明的格式如下:

保护条件否则{     声明 }

更一般地说,读这个 - https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html