我正在用GHUnit编写一个单元测试。我想检查是否在另一个应用程序的库目录内的缓存目录中生成了一个文件。这是否可行,或者是否阻止应用程序访问彼此的库目录?如果是这样,是否有任何可能的解决方法可以为此创建单元测试?我可以将生成的文件存储在不同的目录中,例如文档,还是没有帮助?
在设备上根本不可能。在模拟器中,如果您知道命名应用程序安装目录的随机UUID,理论上可以做到这一点。
但我非常不鼓励你尝试。相反,要使你打算测试的代码足够独立,可以测试。验证另一个应用程序是否行为的单元测试本身几乎与验证是否使用正确参数调用 API 的单元测试一样无用。
明白您尝试进行单元测试的上下文,所以也许我的答案是错误的,但我得到的是您想访问您的其他应用程序,因为 GHUnit 构建为单独的应用程序。
应该没有理由这样做 - 与其解决沙盒问题,不如让我们解决整个问题。
为什么不首先从测试目标应用程序运行您尝试测试的任何缓存创建代码,然后检查捆绑包的 Libary/Cache 目录?
这就是它应该有的全部内容。
应用只能在沙盒中访问自己的文件夹。单元测试应用是否独立于要验证其缓存内容的应用?
不,您需要做的是使用 url 前缀,并让这些方法在安装时由该应用程序注册您需要完成的任何操作。