
Mockdevice Testing
- 5 installs
- 500 repo stars
- Updated August 3, 2026
- facebook/meta-wearables-dat-ios
Test Meta Wearables DAT SDK iOS integrations without physical Ray-Ban Meta glasses by simulating device states, permissions, and camera feeds with MockDeviceKit.
About
Documents MockDeviceKit for simulating Meta glasses (device states, permissions, video/photo camera feeds) in iOS DAT SDK apps. A developer uses it to write XCTest cases and develop camera streaming features without owning physical glasses hardware.
- Simulate powerOn/unfold/don/doff lifecycle and denied permission results
- Reusable XCTestCase base class plus a Debug menu in the CameraAccess sample
Mockdevice Testing by the numbers
- 5 all-time installs (skills.sh)
- Ranked #1,611 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/facebook/meta-wearables-dat-ios --skill mockdevice-testingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 5 |
|---|---|
| repo stars | ★ 500 |
| Last updated | August 3, 2026 |
| Repository | facebook/meta-wearables-dat-ios ↗ |
What it does
Test Meta Wearables DAT SDK iOS integrations without physical Ray-Ban Meta glasses by simulating device states, permissions, and camera feeds with MockDeviceKit.
Files
MockDevice Testing (iOS)
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 devicesMockRaybanMeta— Simulated Ray-Ban Meta glassesMockCameraKit— Simulated camera with configurable video feed and photo capture
Setup
Add MWDATMockDevice to your target via Swift Package Manager (it's included in the meta-wearables-dat-ios package).
import MWDATMockDeviceCreating a mock device
import MWDATMockDevice
let mockDeviceKit = MockDeviceKit.shared
mockDeviceKit.enable()
let mockDevice = mockDeviceKit.pairRaybanMeta()Simulating device states
// Simulate glasses lifecycle
mockDevice.powerOn()
mockDevice.unfold()
mockDevice.don() // Simulate wearing the glasses
// Later...
mockDevice.doff() // Simulate removing
mockDevice.fold()
mockDevice.powerOff()Configuring permissions
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)Setting up mock camera feeds
Video streaming
let camera = mockDevice.services.camera
camera.setCameraFeed(fileURL: videoURL)Photo capture
let camera = mockDevice.services.camera
camera.setCapturedImage(fileURL: imageURL)Writing tests with MockDeviceKit
Create a reusable test base class:
import XCTest
import MetaWearablesDAT
@MainActor
class MockDeviceKitTestCase: XCTestCase {
private var mockDevice: MockRaybanMeta?
private var cameraKit: MockCameraKit?
override func setUp() async throws {
try await super.setUp()
MockDeviceKit.shared.enable()
mockDevice = MockDeviceKit.shared.pairRaybanMeta()
cameraKit = mockDevice?.services.camera
}
override func tearDown() async throws {
MockDeviceKit.shared.disable()
mockDevice = nil
cameraKit = nil
try await super.tearDown()
}
}Using MockDeviceKit in the CameraAccess sample
The CameraAccess sample app includes a Debug menu for MockDeviceKit:
1. Tap the Debug icon to open the MockDeviceKit menu 2. Tap Pair RayBan Meta to create a simulated device 3. Use PowerOn, Unfold, Don to simulate glasses states 4. Select video/image files to configure mock camera feeds 5. Start streaming to see simulated frames
Supported media formats
| Type | Formats |
|---|---|
| Video | h.265 (HEVC) |
| Image | JPEG, PNG |