Use a three-layer approach: Jest with custom RTCPeerConnection stubs for mocking ICE configurations, and MSW for intercepting signaling HTTP/WebSocket contracts at the unit level; Maestro with BrowserStack for UI stability testing on real devices; and optionally Appium with BrowserStack video injection for real media streaming tests on hardware. This is the testing architecture we deployed on our VMS mobile engagement.

