2
當使用XCTest和XCTestExpectation編寫某個異步測試時,我想聲明某個塊是而不是執行。下面的代碼在聲明塊已執行並且如果不是測試失敗時成功。XCTest聲明期望沒有履行
#import <XCTest/XCTest.h>
#import "Example.h"
@interface Example_Test : XCTestCase
@property (nonatomic) Example *example;
@end
@implementation Example_Test
- (void)setUp {
[super setUp];
}
- (void)tearDown {
[super tearDown];
}
- (void)testExampleWithCompletion {
self.example = [[Example alloc] init];
XCTestExpectation *expectation = [self expectationWithDescription:@"expection needs to be fulfilled"];
[self.example exampleWithCompletion:^{
[expectation fulfill]
}];
[self waitForExpectationsWithTimeout:2.0 handler:^(NSError *error) {
if (error) {
NSLog(@"Timeout Error: %@", error);
}
}];
}
似乎還沒有一種明顯的方式來執行此反過來;測試成功時,如果該塊在超時後未執行,並且在超時之前執行則失敗。除此之外,我想斷言在稍後滿足不同條件時執行該塊。
有沒有一種簡單的方法來做到這一點與XCTestExpectation或我將不得不建立一個解決方法?