【问题标题】:Easiest way to use bundle resources for testing使用捆绑资源进行测试的最简单方法
【发布时间】:2014-01-09 13:10:32
【问题描述】:

使用捆绑资源进行测试很方便,例如为测试提供预期结果。

对于旧的逻辑风格的测试,我会使用主包,但对于应用程序风格的测试,主包是应用程序本身。我不想将测试资源放在主包中。

例如,如果测试资源仅属于测试目标,则以下代码不起作用:

//Load a resource from the main bundle
NSString* xml = [[TyphoonBundleResource withName:@"signUpResponse.xml"] asString];

。 . .是否有特定的测试包?我怎样才能解决这个问题?

【问题讨论】:

    标签: ios objective-c xctest


    【解决方案1】:

    只需使用:

    NSBundle *testBundle = [NSBundle bundleForClass:[YourTestClass class]];
    

    或在 Swift 3 中:

    let testBundle = Bundle(for: type(of: self))
    

    在测试代码中。您在“构建阶段”中为 XCode 中的测试目标添加的“复制包资源”中的所有内容都将在此包中可用。

    【讨论】:

    • 啊,是的——这很简单!事实上,现在我记得以前做过这个。有一段时间我停止使用“应用程序”样式测试,因为它们很难从 cmd-line 开始工作,这意味着设置 CI 构建会很头疼。 . .现在一切似乎都已解决,所以又要重新使用它们了。
    • Swift3: let testBundle = Bundle(for: type(of: self))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多