Swift —测试驱动开发(TDD)

本文是同时介绍TDD和多个CI概念的指南的一部分。 您可以在 此处 查看介绍性文章

代码测试是开发中至关重要的部分,以确保您编写的代码既可以执行预期的工作,又可以确保将来的更改不会破坏过去的工作(眨眼眨眼的持续集成)。

TDD,即测试驱动开发,它不仅是一个时髦的词,而且是一种非常有趣且易于使用的开发方法。 有了它,您应该首先编写测试,然后再编写使它们通过的代码:

  1. 编写测试(该测试将失败,因为您还没有代码!)
  2. 编写最少的代码以使测试通过
  3. 进一步增强您刚才编写的代码的测试
  4. 重构代码以使新测试通过
  5. 在添加测试和重构代码之间进行迭代,直到达到所需的功能和代码质量为止。

为了向自己介绍TDD方法,我遵循了Yvette Cook的TDD指南,因此您应该很清楚地解释该概念,并逐步指导您实施示例项目。

有几个吊舱可以使测试过程更加简化并简化编写测试的任务。 他们是:

  • 敏捷

因此,接下来,我将展示您可以对它们进行哪些使用:

  1. 将两个Pod导入到项目中:

2.从以下位置更改标题:

3.代码在spec()函数中运行:

4.用beforeEach块替换setUp()块:

5.使用Nimble,我们可以使用更易于阅读的方法编写测试。 例如:

变成:

Nimble不仅易于编写,而且还赋予您更多表达结果的自由,并且还建立在其他XCTAssert功能的基础上(例如,在测试网络请求时,指定异步期望非常简单)。 请查看Nimble的文档以获取更多信息。

您可以在下面找到进一步的比较:

而旧的(如果失败的话)将不会显示文本错误消息(除非我们指定自定义消息,例如XCTAssert(1 == 2, "your custom error message here") ,它会采用Nimble方法,它将自动使用在it("message")标头中指定的描述。

通过使用这些Pod,我认为我的测试不仅易于编写,而且最终也易于阅读(因此,将来可以根据需要进行更新)。

我打算在我现在开始使用的另外两个Pod上写一篇单独的文章,使您可以用更少的代码以不同的方式测试UI🙂现在,您可以检查他们的github页面:

  • 敏捷快照
  • KIF

确立了测试的重要性之后,接下来的系列文章现在将重点介绍CI方法:它的重要性以及如何在XCode,Swift项目中将其付诸实践。

在这里检查。