我是AngularJS的新手。我们正在使用业力/茉莉花测试工具。
我打算通过我试图在这里进行单元测试的代码。我希望你能帮我写一个单元测试。我能够编写非常简单的单元测试。但是存在很多依赖关系的模块给我带来了麻烦。
以下是我尝试进行单元测试的代码:
var referencedataservice = angular.module('referenceDataService', []);
referencedataservice.factory('dataService', function($localStorage, $http, constant) {
var username = $localStorage.user.username;
var password = $localStorage.user.password;
var request = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
data: {
username: username,
password: password
}
};
function getCountries() {
request.url = constant.URL_GET_COUNTRIES;
return $http(request).then(
function(result) {
return result.data;
});
}
}
这是常量服务的样子:
angular.module('constantsService', []).constant("constant", {
"URL_GET_COUNTRIES": "app/lookup/getCountries",
"URL_GET_PRODUCT_TYPES": "app/lookup/getProductTypes",
});
我可以很容易地对constantsService进行单元测试。但我无法弄清楚如何为referenceDataService编写单元测试。以下是我的尝试:
describe("Test Reference Data Service", function() {
var a;
var dataService;
var $localStorage;
var constant;
var $http;
beforeEach(module('ngStorage', 'constantsService', 'referenceDataService'));
beforeEach(inject(function($localStorage, _constant_, _dataService_) {
constant = _constant_;
$http = _$http_;
dataService = _dataService_;
}));
it("should be the same", function() {
var countries;
dataService.getCountries().then(function(data) {
countries = data.referenceDataValues;
});
a = countries[0].id;
expect(a).toBe("1000000");
});
});
它显然不起作用。测试甚至无法编译。继续获得与依赖相关的错误。我只是不知道如何修复它们。
答案 0 :(得分:0)
您的getCountries是异步的,因此您需要在测试中使用“完成”。
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/plain,text/csv,application/csv,application/download,application/octet-stream')