Angular 累加值的单元测试
Angular unit test for adding up values
我是 angular 单元测试用例的新手,我正在尝试为我的 Angular 控制器中的以下代码编写单元测试用例。数据包含已加起来并分配给 $scope.Total
的余额
.success(function (data) {
$scope.Total = _.reduce(data, function(memo, value) {
return memo + value.Balance;
}, 0);
});
我的测试用例如下所示
it('should return Total', function () {
_http.whenGET('').respond([{
data: [
{ Balance: 5 },{Balance:10}]
}]);
_controller();
_http.flush();
expect(_scope.Total).toBe(15);
});
我一直收到错误 Expected NaN to be 15.Error: Expected NaN to be 15.
请让我知道我在这里做错了什么。如果你能告诉我正确的代码就太好了。
提前致谢。
我认为这是因为 httpBackend stubbing 中数据存根的数据结构不正确。
_http.whenGET('').respond([{
data: [
{ Balance: 5 },{Balance:10}]
}]);
应该是:
_http.whenGET('').respond([{ Balance: 5 },{Balance:10}]);
查看您的实现,您似乎正在寻找对象数组,每个对象都具有平衡 属性。相反,您在数据结构中又添加了一层。
旁注:您可能希望抽象化对 angular 服务的 http 调用,并在控制器中注入 angular 服务,而不是直接使用 http。这样,您就可以在控制器中实现关注点分离和单一责任。您也可以轻松地为您的服务创建模拟。
我是 angular 单元测试用例的新手,我正在尝试为我的 Angular 控制器中的以下代码编写单元测试用例。数据包含已加起来并分配给 $scope.Total
的余额.success(function (data) {
$scope.Total = _.reduce(data, function(memo, value) {
return memo + value.Balance;
}, 0);
});
我的测试用例如下所示
it('should return Total', function () {
_http.whenGET('').respond([{
data: [
{ Balance: 5 },{Balance:10}]
}]);
_controller();
_http.flush();
expect(_scope.Total).toBe(15);
});
我一直收到错误 Expected NaN to be 15.Error: Expected NaN to be 15.
请让我知道我在这里做错了什么。如果你能告诉我正确的代码就太好了。
提前致谢。
我认为这是因为 httpBackend stubbing 中数据存根的数据结构不正确。
_http.whenGET('').respond([{
data: [
{ Balance: 5 },{Balance:10}]
}]);
应该是:
_http.whenGET('').respond([{ Balance: 5 },{Balance:10}]);
查看您的实现,您似乎正在寻找对象数组,每个对象都具有平衡 属性。相反,您在数据结构中又添加了一层。
旁注:您可能希望抽象化对 angular 服务的 http 调用,并在控制器中注入 angular 服务,而不是直接使用 http。这样,您就可以在控制器中实现关注点分离和单一责任。您也可以轻松地为您的服务创建模拟。