角度单元测试控制器

时间:2016-05-17 10:36:08

标签: angularjs unit-testing jasmine angular-controller

我已经为一个简单的控制器写了一些单元测试,这个控制器有一个发出http请求的服务,两个单元测试都有效,但我不确定哪个是最合适的,或者我是否想要同时使用它们?

我写的第一个测试更像是java中弹簧控制器的mockito样式测试:

  it('should make call via function add() using spyOn()', function() {                                      
        spyOn(calculatorServiceMock, 'add').and.returnValue($q.when(5));
        $scope.add(3,2);    
        $httpBackend.flush();           
        expect(calculatorServiceMock.add).toHaveBeenCalledWith(3, 2);          
        expect($scope.result).toEqual(5); 
 });

第二个测试是我想更简单一点,它不验证控制器内部的任何交互,它只是期望进行调用,存根响应并在之后检查控制器上的值:

it('should make call via function add() using http backend expect', function() {                                     
      $httpBackend.expect('GET', url + 'calculator/add?val1=1&val2=32').respond({"result": 33});           
      $scope.add(1, 32);          
      $httpBackend.flush();               
      expect($scope.result).toEqual(33); 
 });    

这些方法中的任何一种都优先于其他方法,是否有任何优点可以包括测试控制器功能?

0 个答案:

没有答案