2

我正在尝试在 OCUnit 环境中运行我的应用程序。它使用一个 sqlite 数据库,我将它放在应用程序的文档文件夹中。

但是,从测试运行时,数据库的路径设置为:

~/Library/Application Support/iPhone Simulator/6.0/Documents/Test.sqlite

虽然相同的代码给了我一条路径

~/Library/Application Support/iPhone Simulator/6.0/Applications/34536EFB-005A-44A1-AD99-07D6B9F6888B/Documents/Test.sqlite

当我在模拟器上运行它时。

如何在我的测试中使用 NSDocumentDirectory 并获得我需要的东西?

4

1 回答 1

2

应用程序目标与测试目标不同,这就是您获得不同路径的原因。

使用 OCUnit 时,您可以NSBundle像这样进行测试:

NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"myResource" ofType:@"someType"];

您必须将数据库添加到测试目标的资源中并相应地使用它。

或者您可以像这样构建路径(取自此OS Answer):

// Test case -> path inside "UnitTests" folder in the project directory
NSString *directory = [[NSFileManager defaultManager] currentDirectoryPath];
NSString *path = [directory stringByAppendingPathComponent:@"UnitTests/"];
path = [path stringByAppendingPathComponent:@"Test.sqlite"];
于 2012-10-23T19:22:56.850 回答