macOS Xcode 黑盒测试

macOS Xcode blackbox testing

我正在开发一个类似于文件同步客户端(如 Dropbox)的应用程序。

我希望进行类似这样的验收(黑盒)测试:

- (void) testLocalFolderCreation
{
    // assert there is no folder on the server

    // create folder (either via NSFileManager or system('mkdir ...'))

    // wait a few seconds

    // assert there is now a relevant folder on the server
}

以及其他一些测试本地和远程更改以及同步客户端行为的测试。

我尝试在 Xcode 中创建单元测试包,但实际上并没有启动我需要进行此类测试的应用程序。

我想一次性测试应用程序,而不是为每个测试方法或测试重新启动整个应用程序 class。

有没有人知道如何解决这个问题? 我想,一种选择是创建单独的应用程序(使用 Xcode 或某种完全不同的语言),这将启动应用程序(我的同步客户端)并在应用程序处于 运行 时进行测试;但我不确定这是否是一种正确的方法。

我最终在 python 中编写了测试。 Python 程序会做: 1.用测试数据准备测试环境(删除旧用户账户并创建新的用户登录账户) 2. 删除磁盘上任何旧的缓存应用程序数据并启动应用程序 3. 进行如下测试: 3.1.本地修改文件系统 3.2.睡3秒 3.3.断言服务器上的状态是预期的

反之亦然(使远程服务器发生变化,休眠 5 秒,断言本地状态符合预期)。

最后结果很不错,但我想这个解决方案适合这种应用程序(虚拟文件系统),它不能被通用应用程序采用。