我在es6中有一个基本的相机类。一种方法请求权限。我只是简化它。
class Camera {
// omit unimportant details
getStream() {
return new Promise((resolve, reject) => {
navigator.webkitGetUserMedia({ video: true }, (stream) => {
this.video.attr('src', window.URL.createObjectURL(stream));
resolve(stream);
}, (error) => {
reject(error);
});
});
}
}
window.camera = Camera;
然而,似乎存在问题。我用流星的包测试框架进行了小型单元测试。
Tinytest.addAsync('Should set the video url', function (test, next) {
let camera = new window.Camera();
camera.getStream().then((stream) => {
test.isNotUndefined(stream);
test.equals(camera.video.attr('src', window.URL.createObjectURL(stream)));
next();
}).catch((err) => {
test.fail(err);
next();
})
});
但是,此测试会暂停,因为它必须从浏览器请求权限才能使用用户媒体。
如何测试从浏览器请求权限的程序包?