我在swift中有一个类似于-
的功能func trigger() {
var currentVolume = AVAudioSession.sharedInstance().outputVolume
if(currentVolume < THRESHOLD) { do_something() }
else { fire_method() }
}
我想为
trigger
编写单元测试,这样每当我改变音量时,do_something
或 fire_method
都会根据 THRESHOLD
被调用。 do_something
基本上是触发 api 请求并调用需要测试的回调。
现在的问题是,在模拟器中,我无法通过代码更改音量,因为 AVAudioSession.sharedInstance().outputVolume
是只读变量。我必须使用 iOS 设备来更改音量,但我们无法在物理设备中运行正常的单元测试。
我尝试探索用于模拟或存根
AVAudioSession.sharedInstance().outputVolume
的库,但找不到合适的解决方案。尝试过 MPVolumeView()
,但通过使用它我们无法在模拟器中运行测试 - 它只能在设备上运行。还尝试寻找可以在物理设备上运行测试但无法为此找到合适解决方案的方法。