2016-04-12 140 views
0

我是單元測試新手。如何編寫Controller的測試用例?

請幫我寫測試用例代碼如下代碼:

$scope.convertToInt = function (str) { 
       if (!isNumberEmpty(str) && !isNaN(str)) { 
        return parseInt(str, 10); 
       } 
       return ""; 
      } 

我已經試過這樣,但沒能做到。

describe('ConfigurationTestController', function() { 

    beforeEach(module('usp.configuration')); 

    describe('ConfigurationController', function() { 
     beforeEach(inject(function ($rootScope, $controller) { 
      scope = $rootScope.$new(); 
      controller = $controller('ConfigurationController', { 
       '$scope': scope 
      }); 
     })); 
    }); 
}); 

請告訴我,我該怎麼寫.......

+0

爲什麼不能谷歌? – Joy

+0

我試圖在谷歌搜索,但我沒有得到如何通過測試案例的str,之後,只有我張貼。:) –

回答

1

你需要修改你的代碼位。你的測試用例中不需要使用describe兩次。

(function() { 

    "use strict"; 

    describe("test suite for Configuration test controller", function() { 

     var scope = null; 
     beforeEach(module("usp.configuration")); 
     beforeEach(inject(function($rootScope, $controller) { 
      scope = $rootScope.$new(); 
      $controller("ConfigurationController", { 
       $scope: scope 
      }); 
     })); 

     it("should convert to int", function() { 
      expect(scope.convertToInt("2")).to.equal(2); 
     }); 

     it("should return empty string", function() { 
      expect(scope.convertToInt("asd")).to.equal(""); 
     }); 
    }); 

}()); 
+0

我也嘗試過同樣的方式,但之前和現在我也得到相同的錯誤:錯誤:[$ injector:unpr] –

+0

你能否在問題中提供你的堆棧跟蹤錯誤?另外,如果您點擊瀏覽器控制檯中的錯誤,它會將您帶到角度網站,您可以在其中查看更多詳細信息。很可能你錯過了一些依賴關係 – S4beR

+0

angular.module('usp.configuration').controller('ConfigurationController',ConfigurationController); ConfigurationController。$ inject = ['$ scope','$ rootScope','$ routeParams','configurationService','productService','notification','sitemapService','DYNAMIC_NOTIFICATION_API_HOSTNAME','fogsettingsService','signalrService' ,'policyService'];我有所有這些依賴關係,所以我必須將所有這些注入測試用例.... –

相關問題