gpt4 book ai didi

ios - 使用 XCTest 进行异步性能测试

转载 作者:技术小花猫 更新时间:2023-10-29 10:59:14 30 4
gpt4 key购买 nike

我已经开始探索用于异步和性能测试的新 XCTest API。孤立地,来自 WWMC 的 Apple 示例运行良好,但我一直无法弄清楚如何将它们结合起来。我能想到的最好的是下面的,但是当它运行时我收到以下错误:

API 违规 - 在未设置任何预期的情况下调用等待。

XCTestExpectation *clsQueryReturnedExpectation = [self expectationWithDescription:@"clsQuery returned"];

PFCLSClient *theClient = [[PFCLSClient alloc] init];

[self measureMetrics:@[XCTPerformanceMetric_WallClockTime] automaticallyStartMeasuring:YES forBlock: ^{
[theClient getStructureOfType:clsImageTypeSVG ForID:idString success: ^(NSDictionary *structureInfo) {
[clsQueryReturnedExpectation fulfill];
} failure: ^(NSError *error) {
XCTFail();
[clsQueryReturnedExpectation fulfill];
}];

[self waitForExpectationsWithTimeout:5 handler: ^(NSError *error) {
[self stopMeasuring];
}];
}];

有没有人能够完成类似的事情?

谢谢

最佳答案

在 Apple 的帮助下,我有了一个解决方案。我的愚蠢疏忽,因为这很容易解决。要开始工作,您需要做的就是将期望对象 (clsQueryReturnedExpectation) 的创建放在 measureMetrics block 中,以便在每次运行性能测试时重新创建它。

PFCLSClient *theClient = [[PFCLSClient alloc] init];

[self measureMetrics:@[XCTPerformanceMetric_WallClockTime] automaticallyStartMeasuring:YES forBlock: ^{
XCTestExpectation *clsQueryReturnedExpectation = [self expectationWithDescription:@"clsQuery returned"];
[theClient getStructureOfType:clsImageTypeSVG ForID:idString success: ^(NSDictionary *structureInfo) {
[clsQueryReturnedExpectation fulfill];
} failure: ^(NSError *error) {
XCTFail();
[clsQueryReturnedExpectation fulfill];
}];

[self waitForExpectationsWithTimeout:5 handler: ^(NSError *error) {
[self stopMeasuring];
}];
}];

关于ios - 使用 XCTest 进行异步性能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24654792/

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