添加Swift文件来testing目标没有修复unit testing
我看了很多博客,并尝试了很多东西,让我的Swiftunit testing在Xcode 6.0.1(或6.1)中工作。 我试图访问我的应用程序的目标中的类,所以我写了这一行:
var vc: LoginViewController!
当然,我得到“使用未声明的types”LoginViewController'“错误。
然后我尝试将LoginViewController
添加到我的testing目标,但是随后在我的项目中的其他类上出现“使用未parsing的标识符”错误。 所以我尝试将这些类添加到我的testing目标中,但是我最终得到了一个看似无穷无尽的错误来源,如下面的屏幕截图:
宣布我所有的类都是公开的,导致其他的错误,似乎是不好的做法。 是否有任何依赖许多框架和类的Swift项目中包含unit testing? 我只是想从几乎完全像本文中的代码开始。
在经历了很多头痛之后,我发现主要的问题是向testing目标成员添加文件时,Objective-C类仍然会抱怨。 我认为这是一个旧的兼容性问题,用Swift进行unit testing的新方法,但解决scheme是我的testing目标不知道有一个桥接头 。 因此,我在testing目标的构build设置中添加了对其的引用,如下所示:
现在看起来简单明了,但是这些错误是无益的。 我没有看到Swiftunit testing的其他解决scheme,这可能是一个问题,但现在我知道了。
文艺青年最爱的
要使unit testing在Swift中工作,testing目标必须知道应用目标知道的所有内容,因此也要在testing目标中添加对桥接头的引用(如果适用)。
我正在使用Xcode 6.1
您需要将swift文件添加到testing目标的target membership
如果您使用的是Xcode 7,现在有更好的方式来处理这个使用@testable import {ModuleName}
。
只要确保要testing的模块的构build设置Enable Testability
设置为YES
。