Ios 在不调用处理程序块的情况下,实现了对通知的预期

Ios 在不调用处理程序块的情况下,实现了对通知的预期,ios,unit-testing,xctest,xctestcase,xctestexpectation,Ios,Unit Testing,Xctest,Xctestcase,Xctestexpectation,在单元测试中,我期望得到通知,并将其提供给方法waitforexpection:timeout:。最后一个没有失败,所以期望值实现了。但是通知的处理程序有时没有被调用。我知道这一点,因为在本例中没有打印处理程序开头的NSLog XCTestExpectation *expectation = [self expectationForNotification:NotificationName

在单元测试中,我期望得到通知,并将其提供给方法
waitforexpection:timeout:
。最后一个没有失败,所以期望值实现了。但是通知的处理程序有时没有被调用。我知道这一点,因为在本例中没有打印处理程序开头的NSLog

XCTestExpectation *expectation = [self expectationForNotification:NotificationName
                                                           object:object
                                                          handler: ^BOOL(NSNotification *notification) {
    NSLog(@"handler");
    <...>
}];

[self waitForExpectations:@[expectation] timeout:timeout];
XTestExpection*expectation=[通知的自我预期:通知名称]
对象:对象
处理程序:^BOOL(NSNotification*通知){
NSLog(@“handler”);
}];
[self-WaitForExpections:@[Expection]超时:超时];

怎么可能期望得到满足,但是它的处理程序没有被调用?

因为超时,实际上期望没有因为超时而失败,在超时之前它是成功的,但是处理程序没有被调用。你能展示真实的代码是可复制的,而不是玩具摘录吗?