美文网首页
iOS XCTest单元测试之接口测试

iOS XCTest单元测试之接口测试

作者: coco_CC | 来源:发表于2018-12-29 11:38 被阅读37次

App测试是一个好的App不可缺少的部分。每个App都是由一个个小的功能组合到一起的。而这些小的功能又是由一个个函数或者说算法组合到一起的。单元测试就是对这些小的功能或者函数进行测试,良好的单元测试会让代码的健壮性提高很多。XCTest就是XCode为我们提供的一个框架,它提供了各个层次的测试。

单元测试的使用场景

  • 对API接口的单元测试,测试驱动开发。
  • 测试网络接口的可用性。不需要经过多次操作到某个界面再去测试该接口。如分享功能,一般需要特定的逻辑才会触发。若直接测试其API就很方便了。
  • API性能测试。

单元测试

  • 所有以test开头的实例方法(不能有参数)都是一个完整的单元测试的case。

XCTest提供了XCTestExpectation来进行异步测试,即可在指定时机使用其fulfill实例方法开始执行断言命令。例如以下是一个完整的网络请求的测试样例,可用于测试server端是否正常,要在对应的block中进行断言。

XCTest单元测试.png
  • 最左边有个小图标,点击之后即可执行该测试case。

即:异步网络请求操作正常执行,但断言命令仅在[expectation fulfill];结束后才开始执行,这样能确保得到网络请求的返回结果后执行相应断言。同时,可设置超时时间及对应操作。
否则,就需要使用定时机制等处理类似情况。

断言命令

XCTFail(format…) 生成一个失败的测试;

XCTAssertNil(a1, format...)为空判断,a1为空时通过,反之不通过;

XCTAssertNotNil(a1, format…)不为空判断,a1不为空时通过,反之不通过;

XCTAssert(expression, format...)当expression求值为TRUE时通过;

XCTAssertTrue(expression, format...)当expression求值为TRUE时通过;

XCTAssertFalse(expression, format...)当expression求值为False时通过;

XCTAssertEqualObjects(a1, a2, format...)判断相等,[a1 isEqual:a2]值为TRUE时通过,其中一个不为空时,不通过;

XCTAssertNotEqualObjects(a1, a2, format...)判断不等,[a1 isEqual:a2]值为False时通过,

XCTAssertEqual(a1, a2, format...)判断相等(当a1和a2是 C语言标量、结构体或联合体时使用,实际测试发现NSString也可以);

XCTAssertNotEqual(a1, a2, format...)判断不等(当a1和a2是 C语言标量、结构体或联合体时使用);

XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...)判断相等,(double或float类型)提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试;

XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) 判断不等,(double或float类型)提供一个误差范围,当在误差范围以内不等时通过测试;

XCTAssertThrows(expression, format...)异常测试,当expression发生异常时通过;反之不通过;(很变态)

XCTAssertThrowsSpecific(expression, specificException, format...) 异常测试,当expression发生specificException异常时通过;反之发生其他异常或不发生异常均不通过;

XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过;

XCTAssertNoThrow(expression, format…)异常测试,当expression没有发生异常时通过测试;

XCTAssertNoThrowSpecific(expression, specificException, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过;

XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过.

相关文章

  • 【开发技巧】单元测试

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

  • iOS测试

    [iOS 单元测试之XCTest详解](http://blog.csdn.net/hello_hwc/articl...

  • (二) kiwi 实践一二

      上一篇 初探 iOS 单元测试 我们简述了单元测试的目的和本质,并介绍了XCTest的常见用法。XCTest作...

  • iOS XCTest单元测试之接口测试

    App测试是一个好的App不可缺少的部分。每个App都是由一个个小的功能组合到一起的。而这些小的功能又是由一个个函...

  • iOS 单元测试之XCTest详解

    参考自:iOS 单元测试之XCTest详解 原创blog,转载请注明出处 blog.csdn.net/hello_...

  • iOS单元测试

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

  • iOS 如何进行单元测试 < 二 >

    iOS 单元测试和UI测试教程 - CocoaChina_让移动开发更简单 ObjC 中国 - XCTest 测试...

  • ios单元测试之XCTest

    前言:测试是一个好的App不可缺少的部分。每一个App都是由一个个小的功能组合到一起的。而这些小的功能又是由一个个...

  • iOS如何测试没有回调方法的异步函数

    iOS单元测试的重要性无需多言。XCTest作为苹果的官方测试框架,自从引入了expectations之后,很好地...

  • iOS 单元测试 - XCTest

    原文链接:http://www.yupeng.fun/2020/05/18/xctest/ 简介 单元测试(Uni...

网友评论

      本文标题:iOS XCTest单元测试之接口测试

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