单元测试蒸气(工具箱v.1.0.1)项目

作为iOS开发人员和前后端开发人员,我一直梦想着有机会自己编写后端,而无需在Objective-c / Swift与“ AnyOtherBackendLanguage”之间进行“上下文切换”,而几天前我偶然发现蒸气,瞬间变暗了! 用Swift用Xcode编写后端代码,然后通过Docker容器,数据库连接和ORM,疯狂的性能将其部署到任何地方,Vapor简直难以置信! 大概这是我第一次深深地爱上一种技术来编写有关该技术的教程。

实际上,所有事情或多或少都是“开箱即用”的,他们在不断改进文档和工具箱方面做得非常出色,但是必须在生产中部署Vapor项目以在项目中包括单元测试,并且我发现这是建立Vapor项目时记录较少的文档,同时也是最棘手的部分(到目前为止)。 我将尽力以最佳的方式弥补这一小差距,分享我在几个小时的奋斗中所学到的知识。 让我们从头开始:

 蒸气新的UnitTestTutorial 

不久之后,将创建一个包含一些样板代码的全新项目。 重要的是要注意Vapor将创建项目结构,而不是Xcode项目。

我不知道为什么,但是实际上(工具箱v1.0.1)运行命令来创建Xcode项目并不包含测试目标,为此,您必须遵循以下过程:

  1. 开放终端
  2. cd进入项目目录,例如cd〜/ Documents / UnitTestTutorial
  3. 创建一个包含文件夹ProjectName Tests的文件夹Tests,因此在我们的示例中, mkdir -p Tests / UnitTestTutorialTests
  4. 在其中创建一个swift文件(即使为空也可以), 触摸./Tests/UnitTestTutorialTests/Test.swift

现在,我们在项目根目录下编辑Package.swift文件,并从exclude数组中删除 Tests这一行(在我的屏幕快照第14行)

现在让我们运行vapor命令以创建Xcode项目

 蒸气Xcode 

现在让我们在项目中创建一个新类,以验证单元测试以后是否可以工作。 因此,让我们在App Group下的项目上创建一个新类(只有默认声明是好的,我们只会在初始化后将其设为nil的情况下进行测试),并将其称为HelloWorld.swift。

在应用程序和测试目标中都包含我们要测试的所有类别,这非常重要,否则将无法找到此详细信息,这使我疯狂了数小时,因此请记住

也可以在创建文件后通过在文件树中选择文件并在右列中选择目标来完成此操作。

现在,让我们在Tests / UnitTestTutorialTests组中创建一个新的UnitTest测试用例类。 现在可以删除我们在一开始创建的文件(在我的情况下,我创建了一个名为test.swift的文件)。

并将其称为HelloWorldTests.swift。

现在让我们尝试测试全新的HelloWorld类初始化,包括将以下代码放入testExample函数中:

  func testExample(){ 
  XCTAssert(HelloWorld()!=无) 
  } 

如果一切都正确完成,测试应该会成功(⌘+ u是运行测试的捷径,如果您看到一些错误不用担心它们会消失,则需要重新编译该项目,最终对其进行清理。警告表达式的结果,这只是一个例子,一旦一切正常运行,您将释放您的幻想),并且您具备了开始对惊人的Vapor Project进行测试的所有要素。

我希望本指南将帮助您做出正确的选择,我很确定服务器端Swift和Vapor将成为Backend开发中的下一个重要内容,对于每个问题,请加入Slack频道并参考文档。

测试愉快!!!