代码之家  ›  专栏  ›  技术社区  ›  patrickS

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

  •  3
  • patrickS  · 技术社区  · 10 年前

    我目前正在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 回复  |  直到 10 年前
        1
  •  6
  •   patrickS    10 年前

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

    let path = NSBundle(forClass: self.dynamicType).pathForResource("TestSettings", ofType: "plist")
    
        2
  •  2
  •   michal.ciurus    10 年前

    在设计单元测试时,你必须问自己的最基本问题是: 你想测试什么 ?

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

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

    你应该使用 模拟 而不是用于任何数据库/互联网/文件通信。

    如果您不知道模拟是什么,这里有一个快速概述:

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