我一直在遵循苹果公司关于编写iPhone单元测试的文档,但是直接使用时似乎不起作用。我不确定单元测试将从何处获取应用程序委托的引用。
我的依赖关系如下所示: My_Program_target -> UnitTesting_target -> UnitTests_bundle
以下代码片段是断言失败的地方。我非常熟悉CPPUNIT,但我不理解它如何跨越这个问题。
- (void) testAppDelegate {
id yourApplicationDelegate = [[UIApplication sharedApplication] delegate];
STAssertNotNil(yourApplicationDelegate, @"UIAppliation failed to find the AppDelegate");
}
另外:
在我的处理方式中,我决定进行逻辑测试。我正在尝试读取一个XML文件,但我无法解决bundle,这将为我提供访问文件的路径。我尝试粘贴allBundles输出的路径,但该路径似乎也无法工作。以下是我在测试中执行的内容(您可以看到我正在使用的调试语句来输出bundles的路径):
NSLog(@"BundlePaths: %@", [NSBundle allBundles]);
NSString * path = [[NSBundle bundleWithPath:@"$(TARGET_BUILD_DIR)"] pathForResource:@"SimpleTestList" ofType:@"plist"];
STAssertNotNil(path, @"Bundle Location couldn't find the file specified");
实际上,路径上的断言并不成功,但我不确定应该放什么路径或目录来引用我已经告诉它复制包资源的unitTest bundle。调用[NSBundle mainBundle]也不起作用。