AFNetworking Post 请求的单元测试
Unit test for AFNetworking Post request
我正在尝试为我使用 AFNetworking 的项目编写单元测试 in.I 对我的请求使用以下操作:
- (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 行。
我搜索了很多,但无法找到这些测试的教程或示例 cases.Please 通过任何教程 link 或提示帮助我。
提前致谢
这里有几件事。
- 您可以使用expectations for async tests: Asynchronous Testing With Xcode 6
- 您可以使用OHHTTPStubs to avoid unneeded network traffic and server load: Usage Examples
XCTestExpectation 是一种有效的方法。其他测试框架提供不同的方式。例如,我们可以像这样使用 OCHamcrest 测试成功响应:
- (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 值。
我正在尝试为我使用 AFNetworking 的项目编写单元测试 in.I 对我的请求使用以下操作:
- (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 行。 我搜索了很多,但无法找到这些测试的教程或示例 cases.Please 通过任何教程 link 或提示帮助我。 提前致谢
这里有几件事。
- 您可以使用expectations for async tests: Asynchronous Testing With Xcode 6
- 您可以使用OHHTTPStubs to avoid unneeded network traffic and server load: Usage Examples
XCTestExpectation 是一种有效的方法。其他测试框架提供不同的方式。例如,我们可以像这样使用 OCHamcrest 测试成功响应:
- (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 值。