2016-02-09 2 views
0

Я новичок в тестировании приложения Кордовы, так что вы могли бы дать совет о том, что такое «лучшая практика» в моей ситуации? ситуация: У меня есть модуль завод:Как издеваться над вызовами плагинов Cordova?

angular 
    .module('app.services') 
    .factory('UtilsService', UtilsService); 

function UtilsService() { 

    var service = { 
     isWindows: isWindows, 
     isAndroid: isAndroid 
    }; 

    return service; 

    function isWindows() { 
     return /windows/i.test(device.platform); 
    } 

    function isAndroid() { 
     return /android/i.test(device.platform); 
    } 
} 

и простой тест для isWindows метода:

describe('Util Service Tests', function() { 

var utilSvc; 

beforeEach(function() { 
    module('app'); 
}); 
beforeEach(function() { 
    inject(function($injector) { 
     utilSvc = $injector.get('UtilsService'); 
    }); 
}); 

it('should detect windows', function() { 
    expect(utilSvc.isWindows).toBe(true); 
}); 

}); 

Я запускать тесты с Chitzpah бегуном и получить ошибку:

'device' is undefined

Я нашел возможное решение, например, расширение хром-кордовы, но оно не работает в моем случае (или я делаю с ним что-то не так). Итак, что мне здесь делать? Mock звонки на устройство метод? Если да, как это сделать?

Заранее благодарен!

ответ

0

Вы пытались использовать платформу браузера Кордовы, которые могут быть добавлены с помощью CLI:

cordova platform add browser 

Это обеспечивает некоторую поддержку для использования Cordova API,/плагин в браузере, но плагины вы используете необходимость чтобы поддерживать эту платформу, как правило, с помощью резервного копирования JavaScript, независимо от того, что их собственная функциональность будет делать на реальной мобильной платформе, такой как iOS или Android. Есть good blog post covering the browser platform here. Я не понимаю, насколько хорошо поддерживается эта платформа, но это может быть то, что вы ищете.

+0

Спасибо за ваш ответ, но, к сожалению, это не сработало для меня, потому что наше приложение не предназначено для платформы браузера, поэтому я не могу использовать его в тестах. Я решил использовать другой подход, то есть запустить тесты жасмина на эмуляторе, чтобы все плагины были загружены правильно. – AlenSv

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