【注】SUT(被测系统)是视图控制器,因为HalfTunes工程中拥有大量的视图控制器问题——所有的工作都是在文件searchviewcontroller.swift中完成的。“将网络代码移动到单独的模块”(详见文章http://williamboles.me/networking-with-nsoperation-as-your-wingman/)将会减少这一问题,而且也使测试更为容易。
接下来,您将需要一些样本JSON数据,供您的伪造的会话提供给你的测试使用。只需要做一少部分工作即可;因此,请限制一下您的来自iTunes的下载结果——在URL字符串的后面添加一个限制串&limit=3:
https://itunes.apple.com/search?media=music&entity=song&term=abba&limit=3
复制此URL并把它粘贴到浏览器中。这将下载一个名为1.txt或类似的文件。你可以预览一下它,以便确认这是一个JSON格式的文件,然后重命名它为abbaData.json,并把该文件添加到HalfTunesFakeTests组中。
HalfTunes项目包含了支持文件DHURLSessionMock.swift。这个文件中定义了一个简单的协议——DHURLSession,其提供的方法(代理)用于使用一个URL或URLRequest来创建一个数据任务。它还定义了符合该协议的URLSessionMock对象,该对象中提供的初始化器可以让你使用你选择的数据、响应和误差等来创造一个模拟URLSession对象。
现在,我们来构建伪造的数据和响应,并创建伪造的会话对象;这些都实现于方法setup()中,相应的代码位于创建SUT对象的语句之后:
原文转自:http://mobile.51cto.com/iphone-535758.htm