AGAsyncTestHelper 1.0

AGAsyncTestHelper 1.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新版本2015年12月

Håvard Fossli 维护。



  • 作者:
  • Håvard Fossli

C 宏,用于在 iOS 中编写异步操作单元测试。支持 SenTestingKit 和 XCTest。

安装

使用 Cocoapods 安装 AGAsyncTestHelperAGAsyncTestHelper/Shorthand

示例块

- (void)testDoSomeOperation
{
    __block BOOL jobDone = NO;

    [Manager doSomeOperationOnDone:^(id data) {
        jobDone = YES; 
    }];

    WAIT_WHILE(!jobDone, 2.0);
}

WAIT_WHILE() 将在 !jobDoneTRUE 时阻塞当前 runloop,并在超过时间限制(2.0秒)时抛出 XCTFail()

示例普通回调/代理

- (void)testDoSomeOperation
{
    [Manager doSomeOperationOnDoneTellTarget:self selector:@selector(someOperationDone)];

    WAIT_WHILE(!self.jobDone, 2.0);
}

- (void)someOperationDone
{
    self.jobDone = YES;
}

WAIT_WHILE() 将在 !self.jobDoneTRUE 时阻塞当前 runloop,并在超过时间限制(2.0秒)时抛出 XCTFail()STFail()

概述

当条件为真或达到时间限制时,宏将对表达式进行评估。

如果达到时间限制,这些宏将生成 XCTFail()STFail()

WAIT_WHILE(expressionIsTrue, seconds, ...)
WAIT_WHILE_EQUALS(value1, value2, limitInSeconds, ...)
WAIT_WHILE_EQUALS_WITH_ACCURACY(value1, value2, accuracy, limitInSeconds, ...)
WAIT_WHILE_NOT_EQUALS(value1, value2, limitInSeconds, ...)
AG_STALL_RUNLOPP_WHILE(expressionIsTrue, limitInSeconds)

优点

  • 代码最少
  • 错误在 测试中 抛出。由于它基于宏,异常不会在某些第三方实现文件进一步抛出
  • 小型库
  • 与 SenTestingKit 完美兼容
  • 无已知错误或问题

替代方案

您有几种替代方案,如

如果您还有其他应该列入此处的替代方案,请让我知道。

Stack Overflow 上还有一个关于iOS测试的极好论坛 http://stackoverflow.com/questions/4114083/ios-tests-specs-tdd-bdd-and-integration-acceptance-testing

详细描述

此库或包允许您在 SenTestCase 中使用异步回调执行异步测试操作。与 GCD (Grand Central Dispatch) 和常规委托回调一起工作。

Agens | Digital craftsmanship