Swift 单元测试和核心音频

Swift 单元测试和核心音频,swift,macos,unit-testing,core-audio,Swift,Macos,Unit Testing,Core Audio,在尝试按照这种方法构建单元测试时,我在尝试检查对核心音频的调用时遇到了麻烦 根据我构建的以下代码: func setProperty(id: AudioUnitPropertyID, scope: AudioUnitScope, element: AudioUnitElement, data: UnsafePointer<Void>, size: UInt32) { checkError(AudioUnitSetProperty(base.audioUnit, id, sco

在尝试按照这种方法构建单元测试时,我在尝试检查对核心音频的调用时遇到了麻烦

根据我构建的以下代码:

func setProperty(id: AudioUnitPropertyID, scope: AudioUnitScope, element: AudioUnitElement, data: UnsafePointer<Void>, size: UInt32) {
    checkError(AudioUnitSetProperty(base.audioUnit, id, scope, element, data, size), "Failed to set property: \(propName(id))")
}

如果我错了,请纠正我,但是在测试
play()
时,我只想知道正确的参数是否传递给了
setProperty
。然后在我对协议的测试中,我想确保核心音频在其框架中得到正确的调用。

您可以使用
AudioUnitGetProperty
验证是否设置了正确的属性。我可以对某些属性执行此操作,但不能对所有属性执行此操作。例如,
kAudioUnitProperty\u ScheduleStartTimeStamp
您可以使用
AudioUnitGetProperty
验证是否设置了正确的属性。我可以对某些属性执行此操作,但不能对所有属性执行此操作。例如,
kAudioUnitProperty\u ScheduleStartTimeStamp
struct AudioFileUnit: BaseUnitProtocol {
    func play() {
        var timeStamp = AudioTimeStamp()
        timeStamp.mFlags = AudioTimeStampFlags.SampleTimeValid
        timeStamp.mSampleTime = -1

        // here is the call
        setProperty(kAudioUnitProperty_ScheduleStartTimeStamp, scope: kAudioUnitScope_Global, element: 0, data: &timeStamp, size: UInt32(sizeof(AudioTimeStamp)))
    }
}