Swift XCTest失败,因为无法找到plist文件

时间:2015-01-21 13:41:01

标签: ios swift xctest

我目前正在Swift中构建一个iOS框架项目。我还有一个自己的测试构建目标。我还在测试构建目标中添加了一个新的TestSettings.plist文件。我存储了api调用的用户名/密码。 但是XCTest现在总是失败,因为它无法加载plist文件。

我已经检查过plist文件是否在.xctest文件夹/ bundle

我尝试使用以下代码加载plist文件:

if let path = NSBundle.mainBundle().pathForResource("TestSettings", ofType: "plist") {
            settingsDictionary = NSDictionary(contentsOfFile: path)
} else {
            XCTFail("API: getAuthToken no TestSettings.plist file found")
}

任何想法我做错了,还是有其他方法不将用户名/密码放入测试用例?

2 个答案:

答案 0 :(得分:4)

我发现了问题,无法访问XCTest中的mainBundle。我不得不使用以下代码来修复它:

let path = NSBundle(forClass: self.dynamicType).pathForResource("TestSettings", ofType: "plist")

答案 1 :(得分:2)

在设计单元测试时,您必须问自己最基本的事情是:您想测试什么

您希望测试逻辑的功能,并希望它快速。 您不想测试* .plist文件,并且您不想测试文件是否位于正确的位置。

除非您确实需要(例如算法的复杂输入数据),否则不要使用文件。

您应该使用模拟代替任何数据库/互联网/文件通信。

如果您不知道嘲讽是什么,请快速了解一下:

http://www.codeproject.com/Articles/686935/Unit-testing-with-Mock-objects-Rhino-Mocks