蒸气3系列III-测试

在上一篇文章中,我们实现了两种验证用户身份的方法:HTTP基本身份验证和承载令牌授权。 因此,我们的应用程序仅接受来自经过身份验证的用户的请求。 但是,即使我们的应用程序很简单,我们也应该为端点编写一些单元测试。 测试是软件开发的重要组成部分,编写单元测试使我们能够快速开发和发展应用程序。 为了快速开发新功能,我们希望确保现有功能不会中断,并且拥有完善的测试套件可让我们验证更改代码库时一切仍然正常。 在本文中,我将演示如何为CRUD端点编写单元测试,以及如何在具有Docker的Linux机器上运行测试。

请注意,本文将基于先前的实现。

在Swift中编写应用程序的好处之一是,我们能够使用可爱的Xcode运行测试。 但是,为了使用Xcode运行测试,我们必须事先生成测试目标。 请打开Package.swift并将以下行替换为.target(name: "Run", dependencies: ["App"])

让我们开始编写Application的辅助方法。 请打开Application+Testable.swift并添加以下代码。

现在,我们可以运行测试用例了,它应该通过了!

然后,我们可以为用于检索User模型的端点编写测试用例。 在UserTests.swift内部,将以下函数追加到testUserCanBeSaved函数下方。

这是整个项目。

让我们回顾一下这个测试过程。 首先,我们生成新的测试目标和相应的文件。 此外,我们编写了ApplicationUser模型的辅助方法,以使我们的测试用例简明易懂。 其次,我们使用辅助方法编写每个端点的测试用例,并使用Xcode运行测试。 最后,我们使用Docker在Linux环境上运行测试用例。 测试是软件开发的重要组成部分,并且编写单元测试并使其尽可能自动化是有益的。