【发布时间】:2021-05-20 12:59:20
【问题描述】:
我编写了一个可重用的类,用于打开相机和照片库,如下所示
class CameraAndPhotoManager: NSObject {
var currentVC: UIViewController!
func camera(vc: UIViewController) {
currentVC = vc
if UIImagePickerController.isSourceTypeAvailable(.camera){
let myPickerController = UIImagePickerController()
myPickerController.delegate = self
myPickerController.sourceType = .camera
myPickerController.mediaTypes = [kUTTypeImage as String, kUTTypeMovie as String]
currentVC.present(myPickerController, animated: true, completion: nil)
}
}
func photoLibrary(vc: UIViewController) {
currentVC = vc
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){
let myPickerController = UIImagePickerController()
myPickerController.delegate = self
myPickerController.sourceType = .photoLibrary
myPickerController.mediaTypes = [kUTTypeImage as String, kUTTypeMovie as String, kUTTypeVideo as String]
currentVC.present(myPickerController, animated: true, completion: nil)
}
}
}
我需要编写 TestCases 来打开相机和照片库。有关编写与相机或照片库相关的测试用例的任何信息?任何示例代码都会有所帮助。
【问题讨论】:
-
最复杂的(一般情况下可能不可能)是获取权限。此外,您应该为这种情况编写 XCUITest,而不是 XCTest。我为 PHPhotoLibrary API 编写了一堆单元测试 (XCTest),它只有在为应用程序手动添加权限时才有效。此外,它没有任何对 UI 的访问权限(例如 UIImagePickerController)
-
同意,我也有同感,但我认为可能有一种方法可以访问相机或照片库以进行测试。让我们看看有没有人知道这方面的任何信息。
标签: ios swift xctest xctestcase