Ios 使用捆绑资源进行测试的最简单方法

Ios 使用捆绑资源进行测试的最简单方法,ios,objective-c,xctest,Ios,Objective C,Xctest,使用捆绑资源进行测试非常方便,例如,为测试提供预期结果 对于旧的逻辑风格测试,我将使用主捆绑包,但是对于应用程序风格测试,主捆绑包是应用程序本身。我不想把测试资源放在主捆绑包中 例如,如果测试资源仅属于测试目标,则以下代码不起作用: //Load a resource from the main bundle NSString* xml = [[TyphoonBundleResource withName:@"signUpResponse.xml"] asString]; 。测试是否有特定的捆

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

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

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

//Load a resource from the main bundle
NSString* xml = [[TyphoonBundleResource withName:@"signUpResponse.xml"] asString];
。测试是否有特定的捆绑包?我该怎么处理这件事

只需使用:

NSBundle *testBundle = [NSBundle bundleForClass:[YourTestClass class]];
或在Swift 3中:

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

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

啊,是的,那很容易!。事实上,现在我记得以前做过这件事。有一段时间,我停止使用“应用程序”样式的测试,因为它们很难从cmd行开始工作,这意味着设置CI构建很麻烦。这一切现在看来都已经解决了,所以又回到了使用它们的时候了。Swift3:
让testBundle=Bundle(for:type(of:self))