iOS单元测试和UI测试全面解析(21)

发表于:2017-03-31来源:51CTO作者:朱先忠点击数: 标签:单元测试iOS
overridefunctearDown(){ controllerUnderTest=nil super.tearDown() } 【注】SUT(被测系统)是视图控制器,因为HalfTunes工程中拥有大量的视图控制器问题所有的工作都是在文件
  • override func tearDown() { 
  •   controllerUnderTest = nil 
  •   super.tearDown() 
  • 【注】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