一键导入
mockdevice-testing
MockDeviceKit for testing without physical glasses hardware
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
MockDeviceKit for testing without physical glasses hardware
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | mockdevice-testing |
| description | MockDeviceKit for testing without physical glasses hardware |
Use MockDeviceKit to test DAT SDK integrations without physical Meta glasses.
MockDeviceKit simulates Meta glasses behavior for development and testing. It provides:
MockDeviceKit — Entry point for creating simulated devicesMockGlasses — Simulated glasses (Ray-Ban Meta, etc.)MockCameraKit — Simulated camera with configurable video feed and photo captureAdd MWDATMockDevice to your target via Swift Package Manager (it's included in the meta-wearables-dat-ios package).
import MWDATMockDevice
import MWDATMockDevice
let mockDeviceKit = MockDeviceKit.shared
mockDeviceKit.enable()
let mockDevice = try mockDeviceKit.pairGlasses(model: .rayBanMeta)
// Simulate glasses lifecycle
mockDevice.powerOn()
mockDevice.unfold()
mockDevice.don() // Simulate wearing the glasses
// Later...
mockDevice.doff() // Simulate removing
mockDevice.fold()
mockDevice.powerOff()
MockDeviceKit provides permissions to control permission behavior without the Meta AI app.
By default, requestPermission() returns .granted. Use set(_:_:) to control checkPermissionStatus() and setRequestResult(_:result:) to control requestPermission() outcomes.
let mockDeviceKit = MockDeviceKit.shared
// Simulate denied camera permission status
mockDeviceKit.permissions.set(.camera, .denied)
// Simulate denied request result (user tapping "deny")
mockDeviceKit.permissions.setRequestResult(.camera, result: .denied)
let camera = mockDevice.services.camera
camera.setCameraFeed(fileURL: videoURL)
let camera = mockDevice.services.camera
camera.setCapturedImage(fileURL: imageURL)
Create a reusable test base class:
import XCTest
import MetaWearablesDAT
@MainActor
class MockDeviceKitTestCase: XCTestCase {
private var mockDevice: MockGlasses?
private var cameraKit: MockCameraKit?
override func setUp() async throws {
try await super.setUp()
MockDeviceKit.shared.enable()
mockDevice = try MockDeviceKit.shared.pairGlasses(model: .rayBanMeta)
cameraKit = mockDevice?.services.camera // mockDevice is MockGlasses? for tearDown nil-ability
}
override func tearDown() async throws {
MockDeviceKit.shared.disable()
mockDevice = nil
cameraKit = nil
try await super.tearDown()
}
}
The CameraAccess sample app includes a Debug menu for MockDeviceKit:
| Type | Formats |
|---|---|
| Video | h.265 (HEVC) |
| Image | JPEG, PNG |
Stream, video frames, photo capture, resolution/frame rate configuration
Swift patterns, async/await, naming conventions, key types for DAT SDK iOS development
Display capability setup, display-capable device selection, UI DSL, icons, buttons, images, and video playback
SDK setup, Swift Package Manager integration, Info.plist configuration, and first connection to Meta glasses
Building a complete DAT app with camera streaming and photo capture
Common issues, Developer Mode, version compatibility, state machine diagnosis