我有一个使用Angularjs用javascript编写的Web应用程序,我正在尝试使用jasmine 2.1.3编写单元测试。
但是,应用程序的后端是用 ASP.NET 4.5 编写的,我利用 ASP Web 服务对我的 API 进行客户端调用。
- 在 Jasmine 中为控制器编写单元测试时,如何处理这些 Web 服务调用?
- 对于 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 和后端编写单元测试,然后编写有关两者如何协同工作的集成测试。如何做到这一点并不是一个真正的堆栈溢出问题;它更适合程序员或质量保证站点。