-(void)testPause_trial
{
MyMediaPlayer *player = [[MyMediaPlayer alloc]init];
id mock = [OCMockObject partialMockForObject:player];
AVQueuePlayer* result = [[AVQueuePlayer alloc]init];
result.actionAtItemEnd = AVPlayerActionAtItemEndPause;
[result addObserver:player forKeyPath:@"status" options:0 context:nil];
[result addObserver:player forKeyPath:@"rate" options:0 context:nil];
[(PTMediaPlayer*)[[mock stub] andReturn:result] createAVQueuePlayer:OCMOCK_ANY];
//Start playing
[player play];
[player pause];
[mock stopMocking];
}
Без этой строки "[(PTMediaPlayer *) [[mock stub] andReturn: result] createAVQueuePlayer: OCMOCK_ANY];", мой код работает нормально.
Но при включении этой строки:
- НаблюдатьValueForKeyPath не вызывается для keypath = @ "status"
для keypath = @ "rate", я получаю следующую ошибку:
наблюдайValueForKeyPath: ofObject: изменение: контекст: сообщение было получено, но не обработано.
Путь к ключу: скорость
Наблюдаемый объект:
Изменение: {kind = 1;}
Контекст: 0x0" (0 CoreFoundation 0x000000010bcce1e6 294 + exceptionPreprocess 1 libobjc.A.dylib 0x000000010b363031 objc_exception_throw + 48 2 CoreFoundation 0x000000010bd43975 + [NSException повышение: Формат:] + 197 3 Фонд 0x000000010ace15ca - [NSObject(NSKeyValueObserving) НаблюдениеValueForKeyPath: ofObject: change: context:] + 161 4 Tests_new 0x0000000125f05110 - [PTMediaPlayer наблюдайValueForKeyPath: ofObject: изменение: контекст:] + 176 5 CoreFoundation 0x0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 8 6 5 5 50 50 000 0 0 0 0 0 0 0 0 30 30 30 30 50 50 45 40 0 584 0 0 0 0 0 0 30 30 30 30 30 30 30 50 50 50 50 30 30 H H B F F F F F F FOR FOR PATVA / DWE (3)7 CoreFoundation 0x000000010bc505f8 * ** 1023 тысячи двадцать-два * пересылка * +1025 * + 760 8 CoreFoundation 0x000000010bc50278 _CF_forwarding_prep_0 + 120 9 Фонда 0x000000010ac01820 NSKeyValueNotifyObserver + 349 10 Фонд 0x000000010ac010d7 NSKeyValueDidChange + 483 11 Фонд 0x000000010ace1422 NSKeyValueDidChangeWithPerThreadPendingNotifications + 148 12 AVFoundation 0x000000011b6e04f3 - [AVPlayer didChangeValueForKey:] + 47 13 AVFoundation 0x000000011b6e724f - [AVPlayer setRate: withVolumeRampDuration: playImmediately: rateChangeReason:] + 797 14 AVFoundation 0x000000011b6e730f - [AVPlayer setRate:] + 84 15 Tests_new 0x0000000125f3ac6a - [PTTimelineManager пауза] + 250 16 Tests_new 0x0000000125f01706 - [PTMediaPlayer пауза] +182 17 CoreFoundation 0x000000010bc51ccc * 1 026 * invoking_ 140 + 18 CoreFoundation 0x000000010bc51b84 - [NSInvocation вызова] + 308 19 CoreFoundation 0x000000010bc505f8 * 1 029 * пересылка 760 + 20 CoreFoundation 0x000000010bc50278 _CF_forwarding_prep_0 + 120 21 Tests_new 0x0000000125de49d7- [PTMediaPlayerTests testPause_trial] + 2183 22 CoreFoundation 0x000000010bc51ccc invoking_ 140 + 23 CoreFoundation 0x000000010bc51b84 - [NSInvocation вызова] + 308 24 XCTest 0x000000010b20a01a __24- [XCTestCase invokeTest] _block_invoke.184 + 74 25 XCTest 0x000000010b264ae3 + [XCTestCase (Сбои) executeFailableBlock: shouldInterruptTest:] + 36 26 XCTest 0x000000010b264a2e - [XCTestCase (Неудачи) _performTurningExceptionsIntoFailuresInterruptAfterHandling: блок:] + 54 27 XCTest 0x000000010b209ce3 __24- [XCTestCase invokeTest] _block_invoke + 847 28 XCTest 0x000000010b269a7d - [XCUITestContext performInScope:] + 248 29 XCTest 0x000000010b20997f - [XCTestCase invokeTest] + 175 30 XCTest 0x000000010b20b555__26- [XCTestCase executeTest:] _ block_invoke_2 + 42 31 XCTest 0x000000010b264ae3 + [XCTestCase (Failures) executeFailableBlock: shouldInterruptTest:] + 3632 XCTest 0x000000010b264a2e - [XCTestCase (Неудачи) _performTurningExceptionsIntoFailuresInterruptAfterHandling: блок:] + 54 33 XCTest 0x000000010b20b402 __26- [XCTestCase performTest:] _ block_invoke.318 + 90 34 XCTest 0x000000010b271061 + [XCTContext runInContextForTestCase: блок:] + 225 35 XCTest 0x000000010b20aaff - [XCTestCaseperformTest:] + 673 36 XCTest 0x000000010b24d727 - [XCTest RunTest] + 57 37 XCTest 0x000000010b206341 __27- [XCTestSuite performTest:] _ block_invoke + 365 38 XCTest 0x000000010b205b1d - [XCTestSuite _performProtectedSectionForTest: testSection:] + 55 39 XCTest 0x000000010b205dde - [XCTestSuite performTest:]+ 296 40 XCTest 0x000000010b24d727 - [XCTest RunTest] + 57 41 XCTest 0x000000010b206341 __27- [XCTestSuite performTest:] _ block_invoke + 365 42 XCTest 0x000000010b205b1d - [XCTestSuite _performProtectedSectionForTest: testSection:] + 55 43 XCTest 0x000000010b205dde - [XCTestSuite performTest:] + 296 44XCTest 0x000000010b24d727 - [XCTest runTest] + 57 45 XCTest 0x000000010b206341 __27- [XCTestSuite performTest:] _ block_invoke + 365 46 XCTest 0x000000010b205b1d - [XCTestSuite _performProtectedSectionForTest: testSection:] + 55 47 XCTest 0x000000010b205dde - [XCTestSuite performTest:] + 296 48 XCTest 0x000000010b24d727 - [XCTest RunTest] + 57 49 XCTest 0x000000010b27afa6 __44-[XCTTestRunSession runTestsAndReturnError:] _ block_invoke + 40 50 XCTest 0x000000010b21e389 - [XCTestObservationCenter _observeTestExecutionForBlock:] + 594 51 XCTest 0x000000010b27adb1 - [XCTTestRunSession runTestsAndReturnError:] + 369 52 XCTest 0x000000010b1ecc71 - [XCTestDriver runTestsAndReturnError:] + 447 53 XCTest 0x000000010b26fbb1 _XCTestMain + 960 54 xctest 0x000000010a8a72a4main + 571 55 libdyld.dylib 0x000000011289b955 start + 1)
Любая помощь будет отличной!