如何使用 asp.net Web服务后端对angularjs进行单元测试



我有一个使用Angularjs用javascript编写的Web应用程序,我正在尝试使用jasmine 2.1.3编写单元测试。

但是,应用程序的后端是用 ASP.NET 4.5 编写的,我利用 ASP Web 服务对我的 API 进行客户端调用。

  1. 在 Jasmine 中为控制器编写单元测试时,如何处理这些 Web 服务调用?
  2. 对于 ASP.Net 的Web服务,是否有类似于ngMock和$httpbackend的方法?

示例代码:

茉莉花:

describe('ActivityController', function() {
beforeEach(module('app'));
var $controller;
beforeEach(inject(function(_$controller_){
  $controller = _$controller_;
}));
describe('Get Employees', function() {
var $scope, controller;
beforeEach(function() {
  $scope = {};
  controller = $controller('Activity', { $scope: $scope });
});
it('returns list of employees', function() {
  $scope.loadEmps();
  expect($scope.emps.length).not.toEqual(0);
});
});
});

控制器

angular.module('app').controller('Activity', function ($scope, SharedService, $state, toastr, ngTableParams, $filter) {
//get employees
$scope.loadEmps = function () {
    WebService.getUsers(var1, var2, var3, var4, function (UsersList) {
        // Add Users
        if (UsersList.users != null && UsersList.users.length > 0) {
            $scope.emps = UsersList.users;
            userFriendly = UsersList.users[0].friendlyname;
        }
        else {
            $scope.emps = [];
        }
        $scope.$apply();
    }, function () {
        toastr.error("Could Not Get Users");
        $scope.emps = [];
        $scope.$apply();
    });
 }
 });

网络服务:

[WebMethod]
public group getUsers(string var1, int var2, string var3, string var4)
{
    group response = apiFactory.getGroup(var1, var2, var3);
    response = apiFactory.SortGroup(response, var4);
    return response;
}

您需要为 JavaScript 和后端编写单元测试,然后编写有关两者如何协同工作的集成测试。如何做到这一点并不是一个真正的堆栈溢出问题;它更适合程序员或质量保证站点。

最新更新