2016-07-20 2 views
0

Я просто phantomjs + жасмин + requirejs + сага для проверки кодов JavaScript.Как добавить navigator.geolocation.getCurrentPosition в phantomjs + jasmine + requirejs env

Я использовал способ издеваться navigator.geolocation.getcurrentposition следующее 0 в Does phantomJS support geolocations?

код My JavaScript выглядит следующим образом:

define(function (require) { 

'use strict'; 
var authenticator = {}; 
var Authenticator = require("clientservice/authenticator/Authenticator"); 
var webpage = require('webpage'); 
describe("Request geolocation information", function(){ 
    beforeEach(function(){ 
     webpage.onInitialized = function() { 
      webpage.injectJs('geolocation.js'); 
     }; 
     authenticator = new Authenticator(configObj); 
    }); 

    it("will request browser API for getting geolocation information", function(){ 
     authenticator.authenticate(mockController.successHandler); 

    }); 
}); 

Тогда я получил ниже ошибки при работе с МВН чистый пакет проверить.

  • New Session Created: 6246caf0-4e47-11e6-bc1f-bf8e9b2d1d0e [ERROR - 2016-07-20T06:58:38.443Z] Session [6246caf0-4e47-11e6-bc1f-bf8e9b2d1d0e ] - page.onError - msg: Error: Script error for: webpage

Идея об этом?

+0

authenticator.authenticate вызывает navigator.geolocation.getcurrentposition – Sunny

ответ

0

Я попробовал другой способ дразнить navigator.geolocation:

if(navigator.geolocation === void 0) { 
 
    console.log("It's Ok, we can mock one!"); 
 
} 
 

 
navigator.geolocation = function() {}; 
 
navigator.geolocation.getCurrentPosition = function(callBack) { 
 
    console.log("Mock navigator is invoked!"); 
 
    callBack();}; 
 

 
function callBack() { 
 
    console.log("callBack is invoked!"); 
 
}; 
 

 
if (navigator.geolocation.getCurrentPosition === void 0) { 
 
    console.log("Oh my god!"); 
 
} 
 

 
navigator.geolocation.getCurrentPosition(callBack); 
 

 
phantom.exit();

Хотя функция обратного вызова, то в случае ошибки при работе с ЯШ: CallBack вызывается! TypeError: 'не определено' не является функцией (оценка 'navigator.geolocation.getC urrentPosition (CallBack)()')

+0

, как я могу решить эту ошибку. – Sunny

Смежные вопросы