我在写XCTestCase时遇到问题。我正在研究客户端/服务器应用程序。用户只能开始使用该系统时,这是自动完成的应用程序登录到服务器:只能在某些情况下启动XCTest
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// connect to server and login
[mySys login:^{
login = YES;
}];
}
我所有的测试情况下,当登录标志是只能运行。因为登录可能有时需要。这意味着我必须让所有测试至少等待一段时间(例如30秒)。这是这样的:
-(void)setUp
{
// Need to be blocked here until timeout !!!
AppDelegate* app = [UIApplication sharedApplication].delegate;
if (app.login)
{
// quit from the block !!!
}
}
什么可能是最好的策略来实现呢?谢谢
这太好了。但这取决于我要测试的内容。如果我要测试模型的逻辑。这将是一个很大的帮助。但实际上我也想用这个测试用例来测试Web服务。 –
那么,你可以使用不同的单元测试方法来调用模拟对象,或者真正的模拟对象。但通常你不会在客户端单元测试Web服务,因为它只是一个连接。您可以在本地存根JSON响应(或任何它)。 – Tim
我想在这里测试Web服务的原因是因为我也是创建Web服务的人。所以我想节省一些时间一起测试它。如果Web服务就像Facebook,Tweitter等,那么我基本上可以使用模拟或存根方法。但就我而言,这样做可能太麻烦。因为我必须更改模拟/存根,因此在更改Web服务时进行建模。 –