ฉันเห็นคำถามนี้ถามสองสามครั้ง แต่คำตอบที่พวกเขาได้รับกลับไม่ตอบคำถามนั้นจริงๆ

ฉันมีฟังก์ชั่นคล้ายกับสิ่งนี้:

- (instancetype)initWithDictionary:(NSDictionary *)dictionary
{
    self = [super init];

    if (self) {
        ...
        if ([NSThread isMainThread]) {
            [self loadAttributedText];
        } else {
            @weakify(self);
            dispatch_async(dispatch_get_main_queue(), ^{
                @strongify(self);
                [self loadAttributedText];
            });
        }
    }

    return self;
}

ฉันไม่ต้องทดสอบฟังก์ชันนั้นโดยเฉพาะ แต่ฉันต้องทดสอบค่าของคุณสมบัติคลาสบางอย่างที่ฟังก์ชันloadAttributedTextแก้ไข

ปัญหาที่ฉันเผชิญอยู่คือ ณ เวลาที่จัดสรรคลาส วิธีการloadAttriubutedTextนี้เรียกว่า async method ดังนั้นเมื่อฉันพยายามยืนยันคุณสมบัติของคลาส พวกเขายังไม่ได้เริ่มต้น

ฉันได้ลองใช้XCTestExpectationแล้วแต่ฉันไม่มีบล็อกการสำเร็จในinitWithDictionaryวิธีการและฉันไม่ได้ตั้งใจจะเพิ่มเข้าไป

มีวิธีการทดสอบนี้หรือไม่? ขอบคุณ.

PS: ฉันใช้ OCMock เพื่อเขียนการทดสอบ

ไม่พบคำตอบ