gpt4 book ai didi

ios - 如何使用 AFNetworking 对 api 调用进行单元测试

转载 作者:可可西里 更新时间:2023-11-01 05:09:41 24 4
gpt4 key购买 nike

我有一个正在开发的 iOS 应用程序,它连接到第三方网络服务。我有大约 50 个不同的调用,并且想使用 Kiwi 编写单元测试,但我不知道从哪里开始。

由于我不负责 API,我只需要使用正确的 GET 或 POST 方法检查我的调用是否指向正确的 URL。

有什么方法可以正确测试吗?

这是我的一个电话示例:

+ (void)listsForUser:(NSString *)username
response:(void (^)(NSArray *lists))completion
{
NSString *path = [NSString stringWithFormat:@"user/list.json/%@/%@", TRAKT_API_KEY, username];
[TNTraktAPIManager requestWithMethod:GET
path:path
parameters:nil
callback:^(id response) {
completion(response);
}];
}

调用下面的辅助方法

+ (void)requestWithMethod:(HTTPMethod)method
path:(NSString *)path
parameters:(NSDictionary *)params
callback:(void (^)(id response))completion
{
NSString *methodString = @"POST";
if (method == GET) {
methodString = @"GET";
}


// Setup request
NSURLRequest *request = [[TraktAPIClient sharedClient] requestWithMethod:methodString
path:path
parameters:params];

// Setup operation
AFJSONRequestOperation *operation =
[AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request,
NSHTTPURLResponse *response,
id JSON) {
id jsonResults = JSON;
completion(jsonResults);

} failure:^(NSURLRequest *request,
NSHTTPURLResponse *response,
NSError *error,
id JSON) {

id jsonResults = JSON;
completion(jsonResults);
NSLog(@"%s: error: %@", __PRETTY_FUNCTION__, error);

}];
// TODO: Queue operations
[operation start];

}

最佳答案

如果您在辅助类上设置了shouldEventually 期望并使用receive:(SEL)withArguments:(id)... 形式,那么您可以检查收到的论据是你所期望的。

有两个值得了解的陷阱是在打电话之前设置预期;并使用 shouldEventually 形式而不是 should 以便测试延迟足够长的时间以进行调用。

关于ios - 如何使用 AFNetworking 对 api 调用进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com