cocoa – 单元测试的外部数据文件

cocoa – 单元测试的外部数据文件,第1张

概述我是单元测试的新手,我正在接受一些最佳实践建议.我正在使用 Xcode在Cocoa中编码. 我有一个方法可以验证用户输入的URL.我希望它只接受http://协议,只接受具有有效字符的URL. 为此进行一次测试并使用测试数据文件是否可以接受?数据文件提供示例有效/无效URL以及URL是否应该验证.我也用它来检查错误消息的描述和域. 为什么我这样做 我已经用JUnit阅读了Java中的实用单元测试, 我是单元测试的新手,我正在接受一些最佳实践建议.我正在使用 Xcode在Cocoa中编码.

我有一个方法可以验证用户输入的URL.我希望它只接受http://协议,只接受具有有效字符的URL.

为此进行一次测试并使用测试数据文件是否可以接受?数据文件提供示例有效/无效URL以及URL是否应该验证.我也用它来检查错误消息的描述和域.

为什么我这样做

我已经用JUnit阅读了Java中的实用单元测试,这给出了一个外部数据文件的例子,这让我觉得这没关系.另外,这意味着我不需要用非常相似的代码编写大量单元测试来测试不同的数据.

但另一方面…

如果我正在测试:

>无效字符
>和无效的协议
>和有效的网址

所有在相同的测试数据文件中(因此在同一测试中)这会在以后引起我的问​​题吗?我读到一个测试应该只是失败的原因之一.

我正在做什么?

如果有的话,其他人如何在单元测试中使用测试数据?

解决方法 通常,仅在必要时使用测试数据文件.使用测试数据文件有许多缺点:

>测试代码分为测试代码和测试数据文件.这使得测试更难以理解和维护.
>您希望尽可能快地保持单元测试.进行不必要地读取数据文件的测试会降低测试速度.

在某些情况下我会使用数据文件:

>输入很大(例如,XML文档).虽然您可以使用字符串连接来创建大型输入,但它可能使测试代码难以阅读.
>测试实际上是测试读取文件的代码.即使在这种情况下,您可能希望让测试在临时目录中编写示例文件,以便测试的所有代码都在一个位置.

我建议在代码中编写测试,而不是编码文件中的有效和无效URL.我建议为无效字符创建测试,测试无效协议,测试无效域,以及测试有效URL.如果您认为没有足够的覆盖范围,则可以创建一个小型集成测试来测试多个有效和无效的URL.这是Java和JUnit中的一个例子:

public voID testManyValIDUrls() {  UrlValIDator valIDator = new UrlValIDator();  assertValIDUrl(valIDator,"http://foo.com");  assertValIDUrl(valIDator,"http://foo.com/home");  // more asserts here}private static voID assertValIDUrl(UrlValIDator valIDator,String url) {  assertTrue(url + " should be consIDered valID",valIDator.isValID(url);}
总结

以上是内存溢出为你收集整理的cocoa – 单元测试的外部数据文件全部内容,希望文章能够帮你解决cocoa – 单元测试的外部数据文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1005417.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存