2014-12-03 1 views
1

각도 응용 프로그램에 대한 단위/e2e 테스트를 설정하려고합니다. 각도기 웹 사이트 및 수많은 다른 샘플에 대한 지침에 따라 각도 오브젝트를 언급하지 않는 한 설정하고 테스트를 실행할 수 있습니다. 여기 내가에 대한 검사를 할 샘플 HTML 페이지 :각도기가 각도를 찾을 수 없습니다

<!DOCTYPE html> 
<html ng-app="app"> 
<head> 
    <script type="text/javascript" src="libraries/angular.js"></script> 
    <script type="text/javascript" src="libraries/angular-route.js"></script> 
    <script type="text/javascript" src="libraries/angular-touch.js"></script> 
    <script type="text/javascript" src="libraries/angular-sanitize.js"></script> 
    <script type="text/javascript" src="libraries/angular-mocks.js"></script> 

    ..... 
</head> 
<body ng-controller="DefaultController"> 

...

테스트 : 바로 내가 예외를 가지고 실행으로

describe('Logon page', function() 
{ 
    beforeEach(function() 
    { 
     browser.get('default.html'); 

     angular.module("app"); 
    }); 

    it('should have a title', function() 
    { 
     expect(browser.getTitle()).toEqual('Logon'); 
    }); 
}); 

: "ReferenceEror : 각도가 정의되지 않았습니다." "angular.module ("app ");"을 제거하면 - 잘 작동합니다. 각도기의 콘솔 출력을 보면 Protractor.waitForAngular()가 "각도"객체에 액세스하려고하면 내부적으로 호출 된 것처럼 보입니다. 하지만 내가 아는 한 browser.get은 전에로드해야합니까?

각도 1.3.4와 각도기 1.4.0을 사용합니다.

미리 감사드립니다.

답변

1

angular.module("app"); 부분이 필요합니까? 각도기 테스트에서 작성한 코드는 브라우저에서 실행되지 않습니다. 브라우저 API (Selenium을 통해)를 사용하지만 테스트중인 페이지에서 각도 모듈이나 다른 구조에 직접 액세스 할 수는 없습니다.

단위 테스트 및 E2E 테스트의 개념이 섞여있을 수도 있습니다. 단위 테스트 용으로는 angular.module("app");이 필요합니다.

+0

컨트롤러/서비스/등을 테스트하고 싶습니다. 다음 기사에서와 같이 : [테스트 컨트롤러] (http://angular-tips.com/blog/2014/06/introduction-to-unit-test-controllers/). 따라서 각도 객체에 액세스해야합니다. – Amid

+0

다음은 각도기가 필요 없습니다. 유닛 테스트는 Karma 러너와 함께 실행할 수 있습니다. 분도기는 엔드 - 투 - 엔드 테스트에 사용됩니다 (즉, 별도의 컨트롤러, 서비스 등을 테스트하기 위해 들여 쓰지 않고 일반적으로 백엔드, 데이터베이스 등으로 응용 프로그램 전체를 테스트 할 때). –

+0

Ok. 그래서 당신을 올바르게 이해한다면 각도기는 결코 의도 된 것이 아니며 각도 라이브러리에 접근 할 수 없습니다. 그것은 최종 결과와 함께 작동합니다. 컨트롤러 테스트 등을 실행하려면 카르마 (Karma)와 함께 실행해야합니다. 그 객체를 사용할 수 있습니까? – Amid

관련 문제