2016-02-09 55 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

我已經找到了可能的解決方案,如chrome-cordova擴展,但它在我的情況下不起作用(或者我做錯了它)。那麼我應該在這裏做什麼?模擬電話設備方法?如果是的話,該怎麼做?

在此先感謝!

回答

0

您是否嘗試過用科爾多瓦瀏覽器平臺,可與CLI添加:

cordova platform add browser 

這提供了用科爾多瓦的API /插件,在瀏覽器中的一些支持,但您使用的插件需要通過JavaScript回退來支持該平臺,無論其原生功能在實際的移動平臺(如iOS或Android)上執行什麼操作。有一個good blog post covering the browser platform here。我不清楚這個平臺的維護情況如何,但可能是您要找的。

+0

感謝您的回答,但不幸的是,這並不適合我,因爲我們的應用程序不針對瀏覽器平臺,所以我不能在測試中使用它。我決定使用另一種方法,即在模擬器上運行茉莉花測試,以便所有插件都能正確加載。 – AlenSv

相關問題