iOS单元测试常用的宏和测试方法

发表于:2018-3-20 11:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wg689    来源:简书

  单元测试常用的宏和测试方法
  XCTFail(...)
  任何尝试都会测试失败,...是输出的提示文字。(后面都是这样)
  XCTAssertNil(expression, ...)
  expression为空时通过,否则测试失败。
  expression接受id类型的参数。
  XCTAssertNotNil(expression, ...)
  expression不为空时通过,否则测试失败。
  expression接受id类型的参数。
  XCTAssert(expression, ...)
  expression为true时通过,否则测试失败。
  expression接受boolean类型的参数。
  XCTAssertTrue(expression, ...)
  expression为true时通过,否则测试失败。
  expression接受boolean类型的参数。
  XCTAssertFalse(expression, ...)
  expression为false时通过,否则测试失败。
  expression接受boolean类型的参数。
  XCTAssertEqualObjects(expression1, expression2, ...)
  expression1和expression1地址相同时通过,否则测试失败。
  expression接受id类型的参数。
  XCTAssertNotEqualObjects(expression1, expression2, ...)
  expression1和expression1地址不相同时通过,否则测试失败。
  expression接受id类型的参数。
  XCTAssertEqual(expression1, expression2, ...)
  expression1和expression1相等时通过,否则测试失败。
  expression接受基本类型的参数(数值、结构体之类的)。
  XCTAssertNotEqual(expression1, expression2, ...)
  expression1和expression1不相等时通过,否则测试失败。
  expression接受基本类型的参数。
  XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, ...)
  expression1和expression2之间的任何值都大于accuracy时,测试失败。
  expression1、expression2、accuracy都为基本类型。
  XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, ...)
  expression1和expression2之间的任何值都小于等于accuracy时,测试失败。
  expression1、expression2、accuracy都为基本类型。
  XCTAssertGreaterThan(expression1, expression2, ...)
  expression1 <= expression2时,测试失败。
  expression为基本类型
  XCTAssertGreaterThanOrEqual(expression1, expression2, ...)
  expression1 < expression2时,测试失败。
  expression为基本类型
  XCTAssertLessThan(expression1, expression2, ...)
  expression1 >= expression2时,测试失败。
  expression为基本类型
  XCTAssertLessThanOrEqual(expression1, expression2, ...)
  expression1 > expression2时,测试失败。
  expression为基本类型
  XCTAssertThrows(expression, ...)
  expression没抛异常,测试失败。
  expression为一个表达式
  XCTAssertThrowsSpecific(expression, exception_class, ...)
  expression没抛指定类的异常,测试失败。
  expression为一个表达式
  exception_class为一个指定类
  XCTAssertThrowsSpecificNamed(expression, exception_class, exception_name, ...)
  expression没抛指定类、指定名字的异常,测试失败。
  expression为一个表达式
  exception_class为一个指定类
  exception_name为一个指定名字
  XCTAssertNoThrow(expression, ...)
  expression抛出异常时,测试失败。
  expression为一个表达式
  XCTAssertNoThrowSpecific(expression, exception_class, ...)
  expression抛出指定类的异常,测试失败。
  expression为一个表达式
  XCTAssertNoThrowSpecificNamed(expression, exception_class, exception_name, ...)
  expression抛出指定类、指定名字的异常,测试失败。
  expression为一个表达式
  exception_class为一个指定类
  exception_name为一个指定名字
  异步测试方法(定时器测试)
  - (void)testTimerOne02{
      XCTestExpectation *exception01 = [self expectationWithDescription:@"开始测试定时器"];
      self.timer01Exception = exception01;
      [[DYBoxTimer shareInstance] addSubscriberTimerWithTimeInterval:3 target:self selector:@selector(sendLocation01) timerSubscriberName:@"timer5" isRepeat:YES];
      ////等待6s期待预期完成,10s之内完成任务就认为是正常的
     [self waitForExpectationsWithTimeout:3.1 handler:nil];
  }

  - (void)sendLocation1{
      [self.timer1Exception fulfill];
  }



上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号