我正在开发iOS应用程序,我试图用测试驱动开发做到这一点。我一直在阅读关于这个问题的很多,我在book碰到的事情之一是,测试应该是快速,可重复和可靠。因此,在编写网络代码测试时,测试应该“模拟”网络,以便可以在网络可用性的情况下执行测试。单元测试方法与NSData的dataWithContentsOfURL
在我的代码,我有一个从互联网上获取的图像与URL,鳞片,并将其存储在使用dataWithContentsOfURL从NSData的文件系统的方法:
+ (void) getImage:(NSString *)imageUrl {
UIImage *image = [UIImage imageWithData:
[NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]]];
// Scale image
// Save image in storage
}
我的问题是:什么是一种很好的方法来测试这种方法,以便在代码正确时通过测试,并在没有考虑到可能的网络故障时通过测试。
目前在我的测试中我忽略了该方法需要一个连接,只是希望结果是正确的事实。但是,我已经看到,当我的测试套装增长时,这会成为一个问题,因为它们已经花费了相当多的时间来运行。更重要的是,我不希望我的测试失败,只是因为没有良好的网络连接,因为我认为这不是他们的目的。我很欣赏任何建议。
将URL传递到本地文件系统中的映像是解决我的问题的好方法,谢谢。 我的真实方法与您的建议非常相似,使用两个较小的方法来缩放和存储图像,我只是省略了代码,因为我认为它不相关(可能是这样)。 我会将方法的名称更改为在我的应用程序的上下文中更具描述性的方法。 –