我創建了一個包裝環境信息的Env
服務,我目前使用$location.host()
來確定我所處的環境。我如何在我的測試中嘲笑它?
我讀過https://groups.google.com/forum/?fromgroups#!topic/angular/F0jFWC4G9hI,但它似乎沒有工作,例如:
describe("Env (environment) service", function() {
var Env;
beforeEach(module('App'));
beforeEach(inject(
['Env', function(e) {
Env = e;
}]
));
describe("for staging", function() {
beforeEach(inject(function($location, $rootScope) {
$location.host("http://staging-site.com");
$rootScope.$apply();
}));
it("returns envrionment as staging", function() {
expect(Env.environment).toEqual("staging");
});
it("returns .isStaging() as true", function() {
expect(Env.isStaging()).toBeTruthy();
});
});
});
我也試過$browser
變種,但也不管用。有任何想法嗎?
我也試過'$ browser.url()'按http://www.thecssninja.com/javascript/angular位置測試,但這也行不通。 – zlog
我有類似的問題,我需要注入$位置到我的測試,因爲服務需要它。 –
https://github.com/angular/angular.js/issues/493 –