繁体   English   中英

使用Jasmine单元测试Angular Js

[英]Unit Testing Angular Js with Jasmine

我有一段棱角分明的代码,它向cloudant发出了发布请求,返回了响应,使用它构建了一个URL,并使用相同的方法获取了请求。 get请求返回一个数组缓冲区,通过它我可以构建一个要在前端呈现的PDF文件。

有人可以给我建议如何进行单元测试,因为单元测试和其余的API对我来说是一个新领域。 PFB我的代码

$scope.viewfile = function(name) {
                $http({
                method : 'POST',
                url : '/search/searchFiles',    
                data : {'currentdropdownvalue' : name} ,
            }).
            success(function(data){ 
                if (!angular.isUndefined(data.docs[0])){
                $scope.file = data.docs[0]._id;
                var fileUrl = $scope.cloudantUrl + $scope.file +"/"+ $scope.file;       
                $http.get(fileUrl {responseType:'arraybuffer'})
                .success(function (response) {
                     var file = new Blob([response], {type: 'application/pdf'});
                     var fileURL = URL.createObjectURL(file);
                     $scope.content = $sce.trustAsResourceUrl(fileURL);
                     $scope.contentType = "application/pdf";
                     $scope.contentWords = null;
                }).error(function(data){
                    console.log("Printing Error inside Post of view " , data);
                }); 
                }
                     else{
                        $scope.content = null;
                        $scope.contentWords = "File is not available for the selected Name";
                     }



            }).
            error(function(data){ 
                console.log("Printing Error inside view  " , data);
            });
        };
    }

理想情况下,您可能应该使用$ httpBackend,但是我通常只会监视这些功能。 这是一些使用spyOn的sudo代码:

    it('Should test viewFile', function() {
        spyOn($http, 'POST').andReturn(mock_data);
        spyOn($http, 'GET').andCallFake(function(fileUrl) {
            expect(fileUrl).toBe($scope.cloudantUrl + $scope.file +"/"+ $scope.file);
        });
        $scope.viewFile(mocked_name).then(function() {
            expect($scope.content).toBe($sce.trustAsResourceUrl(fileURL));
            expect($scope.contentType).toBe("application/pdf");
            expect($scope.contentWords.toBe(null);
        });

        $rootScope.$apply();
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM