iOS单元测试

作者: 木头与琉璃 | 来源:发表于2017-07-11 09:44 被阅读152次

参考博客:
iOS单元测试概念了解
iOS异步测试
Xcode:为你的项目集成单元测试(unit tests)时记得避开这些坑

1.创建测试工程

File-->New--->Target-->iOS Unit Testing Bundle

image.png

2.引用主工程

@testable import 主工程名 
image.png

3.podfile中引入测试工程

 target 'YStarTests' do
        inherit! :search_paths
    end
image.png

4.项目配置文件调整

  • Enable Testability


    image.png
  • info plist


    image.png

5.单元测试编写

image.png
  • 逻辑测试
//逻辑测试举例: 测试期望结果与实际结果是否相等
    func testAdd(){
        let expectValue = 20
        let actualValue = 30
        XCTAssertEqual(expectValue, actualValue)
    }
  • 功能测试
  //功能测试:测试登录功能(异步测试)
    func testLogin() {
        let expectOption = expectation(description: "登录测试")
        let param = LoginRequestModel()
        param.phone = "18657195470"
        param.pwd = "123456".md5()
        AppAPIHelper.commen().login(model: param, complete: { (result) -> ()? in
            
            if let object = result as? StarUserModel{
                if let uid = object.userinfo?.id{
                    ShareModelHelper.instance().uid = Int(uid)
                    UserDefaults.standard.set(uid, forKey: AppConst.UserDefaultKey.uid.rawValue)
                }
                if let phone = object.userinfo?.phone{
                    ShareModelHelper.instance().phone = phone
                    UserDefaults.standard.set(phone, forKey: AppConst.UserDefaultKey.phone.rawValue)
                }
                ShareModelHelper.instance().token = object.token
                UserDefaults.standard.set(object.token, forKey: AppConst.UserDefaultKey.token.rawValue)
                expectOption.fulfill()
            }
            return nil
        }, error: nil)
        waitForExpectations(timeout: 15, handler: nil)
    }
  • 性能测试
 //性能测试:测试登录功能和Add方法性能表现
    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measure {
            // Put the code you want to measure the time of here.
            self.testLogin()
            
            self.testAdd()
        }
    }

6.执行单元测试

image.png
  • 逻辑测试结果
逻辑测试.gif
  • 功能测试结果
功能测试.gif
  • 性能测试结果
性能测试.gif

相关文章

  • iOS开发——单元测试

    iOS开发——单元测试 iOS开发——单元测试

  • 单元测试

    内容 单元测试 参考文章: [iOS单元测试系列]单元测试框架选型 iOS单元测试:Specta + Expect...

  • 【开发技巧】单元测试

    iOS XCTest单元测试 iOS开发:XCTest单元测试(附上一个单例的测试代码) [iOS单元测试系列]单...

  • 2019-08-28

    浅谈iOS单元测试 iOS单元测试从入门到应用 - 简书

  • 关于iOS单元测试几点Tips

    相关文章: 1、走出 iOS 单元测试的困境2、iOS单元测试--百度Hi iOS团队技术周报 一、单元测试有什么...

  • 浅谈iOS单元测试

    浅谈iOS单元测试

  • IOS单元测试

    IOS单元测试 单元测试开始- (void)setUp {[super setUp];// Put setup c...

  • iOS单元测试

    参考博客:iOS单元测试概念了解iOS异步测试Xcode:为你的项目集成单元测试(unit tests)时记得避开...

  • 单元测试

    转:iOS 使用Kiwi测试框架进行单元测试

  • iOS单元测试

    iOS单元测试 前言 单元测试使用XCTest框架 单元测试的目标:模型文件 用处:不基于界面UI的情况下,保证模...

网友评论

    本文标题:iOS单元测试

    本文链接:https://www.haomeiwen.com/subject/biephxtx.html