有没有办法测试在XCTest中调用对象后拆除我的对象将被解除分配。我想做这样的事情:
[self.client teardown];
__weak typeof(self.client) weakClient = self.client;
XCTestExpectation *teardownExpectation = ...;
dipatch_time_t delay = ...
dispatch_after(delay, dispatch_get_main_queue(), ^{
XCTAssertNil(weakClient);
[teardownExpectation fulfill];
}
self.client = nil;
[self waitForExpectationsWithTimeout:5.0 ...];
但问题是自动释放池不会耗尽,所以我的对象永远不会被释放。
还有其他方法可以测试吗?
答案 0 :(得分:1)
您可以将它放在您自己的自动释放池中,然后将其排空,以模拟运行循环结束时发生的情况。显然,在这里你通过等待测试的期望来保持运行循环。但是,测试分配的更好方法是使用Instruments和泄漏/分配工具。