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 秒,断言本地状态符合预期)。
最后结果很不错,但我想这个解决方案适合这种应用程序(虚拟文件系统),它不能被通用应用程序采用。
我正在开发一个类似于文件同步客户端(如 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 秒,断言本地状态符合预期)。
最后结果很不错,但我想这个解决方案适合这种应用程序(虚拟文件系统),它不能被通用应用程序采用。