【发布时间】:2015-07-27 06:43:34
【问题描述】:
我有一项服务,该服务具有使用 $http 承诺的功能。我想用茉莉花创建一个单元测试。
account.service('AccountService', ['$q', '$http', function ($q, $http) {
this.getServerDataForUrl = function (url) {
var def = $q.defer();
$http.get(url)
.success(function (data) {
if (data) {
def.resolve(data);
} else {
def.reject();
}
})
.error(function (error) {
if (data) {
def.resolve(data);
} else {
def.resolve();
}
});
return def.promise;
};
}]);
更新:回调时更改一些代码。
我已经搜索过它,但它并没有给我这样的功能。任何人都给我一些例子来创建关于它的单元测试。我觉得这个功能很简单。谢谢。
【问题讨论】:
-
这里唯一可以测试的是是否对特定的url进行了请求。网上测试http服务的例子很多。
-
实际上您在代码中所做的事情是多余的。 $http 本身返回一个承诺。为什么需要这样的代码?
-
嗨@Chandermani。这不是我的代码。我的任务是为它编写单元测试:)
标签: javascript angularjs unit-testing karma-jasmine