7

我正在尝试为尝试在文档目录中创建/写入/读取文件的静态库运行单元测试。由于这是一个静态库而不是 iOS 应用程序,因此尝试引用 NSDocumentDirectory 将返回表单的目录

“/用户//库/应用程序支持/iPhone 模拟器/文档”

该目录不存在。当尝试从实际应用程序访问目录时,NSDocumentDirectory 会返回以下形式的内容:

“/用户//库/应用程序支持/iPhone 模拟器/4.2/FEDBEF5F-1326-4383-A087-CDA1B865E61A/文档”

(请注意模拟器版本以及应用程序 ID 作为路径的一部分)

在实现需要 iOS 应用特定调用的测试的静态库的单元测试框架中,如何克服这个缺点?

提前致谢。

4

4 回答 4

3

您还可以通过模拟您的文件访问来解决此问题,以便测试验证您的代码是否尝试将预期数据写入 NSDocumentsDirectory 给出的路径,而实际上并未触及文件系统。

于 2011-01-06T00:06:59.563 回答
3

我自己解决这个问题。在我的单元测试设置阶段,如果 Document 目录不存在,我将创建它,并在测试完成后将其删除。这有效地让我克服了障碍并继续我的逻辑测试,而不必担心 iOS 应用程序的特殊性。

于 2011-01-05T23:50:34.607 回答
2

仅通过定义预处理器宏NSLibraryDirectory来代替NSDocumentDirectory测试。TEST

然后,使用以下命令删除文件tearDown

[[[NSFileManager alloc] init] removeItemAtURL:fileURL error:NULL]
于 2011-07-21T05:24:33.907 回答
0

gh-unit 框架可以在模拟器或您的设备上运行单元测试。这不仅可以解决您的问题,还可以让您调试您的应用程序(这是我在其他单元测试框架中所缺少的)。

下载 gh 单位

如何安装 gh-unit

于 2011-01-04T19:47:41.477 回答