0

当我尝试使用以下任一方式获取主目录时,我正在运行使用 sqlite 数据库在 iPhone 模拟器上使用默认 SenTestingkit 测试我的代码的测试用例

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];

或者

NSString *home = NSHomeDirectory();

我找到了指向下一个浴缸的错误路径

/Users/{user}/Library/Application Support/iPhone Simulator/5.1

而且我无法创建 sqlite 数据库,知道如何在测试用例中获得正确的路径吗?

谢谢

4

1 回答 1

1

我找到了答案:)

首先,我必须检测我是在 TestCase 中还是使用 NSClassFromString 为 SenTest 类运行项目,然后根据每种情况构造路径

if (NSClassFromString(@"SenTest") == nil) {
        // Running project -> path inside the Document folder
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *docsPath = [paths objectAtIndex:0];
        path = [docsPath stringByAppendingPathComponent:KDatabaseName];
    } else {
        // Test case -> path inside "UnitTests" folder in the project directory
        NSString *directory = [[NSFileManager defaultManager] currentDirectoryPath];
        path = [directory stringByAppendingPathComponent:@"UnitTests/"];
        path = [path stringByAppendingPathComponent:KDatabaseName];
    }
于 2012-10-14T12:19:56.793 回答