Ios AFPOST请求的单元测试

Ios AFPOST请求的单元测试,ios,xcode,unit-testing,xctest,Ios,Xcode,Unit Testing,Xctest,我正在尝试为我在中使用AFNetworking的项目编写单元测试。我对我的请求使用以下操作: - (void)testRegisterRequest{ AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id resp

我正在尝试为我在中使用AFNetworking的项目编写单元测试。我对我的请求使用以下操作:

- (void)testRegisterRequest{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    XCTAssert(Result,"Register failed!");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
     //Failure
}
因为它是异步的,所以它从不测试我的XCTAssert行。 我搜索了很多,但找不到这些测试用例的教程或示例。请通过任何教程链接或提示帮助我。
提前感谢

这里有几件事

  • 可用于异步测试:
  • 您可以使用以避免不必要的网络流量和服务器负载:

  • 这里有几件事

  • 可用于异步测试:
  • 您可以使用以避免不必要的网络流量和服务器负载:

  • XTestExpection是一种有效的方法。其他测试框架提供了不同的方法。例如,我们可以使用以下方法测试成功响应:

    - (void)testRegisterRequest
    {
        __block id response = nil;
    
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        [manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
            response = responseObject;
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        }];
    
        assertWithTimeout(5, thatEventually(response), is(notNilValue()));
    }
    

    您可能会测试响应的属性,而不是简单地测试它是否为nil值。

    xTestExpection是一种有效的方法。其他测试框架提供了不同的方法。例如,我们可以使用以下方法测试成功响应:

    - (void)testRegisterRequest
    {
        __block id response = nil;
    
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        [manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
            response = responseObject;
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        }];
    
        assertWithTimeout(5, thatEventually(response), is(notNilValue()));
    }
    

    您可能会测试响应的属性,而不是简单地测试它是否为nil值。

    您正在编写服务器的验收测试吗?(完全正确的做法。)@JonReid我想确保我的API正常工作并给出结果,对于某些请求,我测试它是否成功,对于其他请求,我检查失败。您正在编写服务器的验收测试吗?(完全正确的做法。)@JonReid我想确保我的API正常工作并给出结果,对于一些请求,我测试它是否成功,对于其他请求,我检查失败。