2014-12-31 5 views
2

나는 장고 응용 프로그램에서 django-ajax을 사용하고 있으며이를 사용하는보기에 대해 철저한 단위 테스트를 수행하려고합니다. MyApp를/endpoints.py에서장고보기에서 Ajax 종점 테스트

{% block head_js %} 
    <script type="text/javascript"> 
    $(function() { 
     $('#progressbar').progressbar({ 
      value: false 
     }); 

     var checkStatus = function() { 
      $.ajax({ 
       type: "POST", 
       url: '/ajax/MyApp/check_provisioning.json', 
       dataType: 'json', 
       success: function(data) { 
        if (data.data.complete != true) { 
         setTimeout(checkStatus, 3000); 
        } else { 
         // We've finished provisioning, time to move along. 
         window.location.replace('/MyApp/next'); 
        } 
       } 
      }); 
     }; 

     checkStatus(); 
    }); 
    </script> 
{% endblock %} 

나는 기능 (간체)이 : 이제

def check_provisioning(request): 

    # Do some stuff     

    return {'complete': some_boolean} 

을 ... 지금까지 내가 같은

특정 뷰에 대한 나의 템플릿은 다음을 포함 뷰 기능이 실제 사용 상태에서 잘 작동 함을 알 수 있습니다. 그러나 단위 테스트를 할 때 django의 테스트 클라이언트는 렌더링 된 응답을 가져 오지만 그 안에 묻힌 어떤 것도 실행하지 않습니다.

뷰 및/또는 엔드 포인트 기능이 실제 수행하고있는 단위 테스트 방법을 아는 사람이 있습니까? 차라리 장고 테스트 프레임 워크를 사용하여 장고 아약스를 사용하는 전체 프로젝트에서 셀레늄 테스트를 설정하는 데 실패하지 않을 것입니다.

답변

1

당신은 장고 - 캐스퍼과 같이 사용할 수 있습니다

https://github.com/dobarkod/django-casper

나는 그것을 사용하지 않은,하지만 CasperJS 및 PhantomJS와 인터페이스 장고 고유의 파이썬 라이브러리 것으로 보인다.

PhantomJS는 셀 륨으로 브라우저 자동화보다 가벼운 대안을 제공하는 웹 키트 기반의 헤드리스 브라우저입니다.

+0

나는 할 수 있습니다. 하지만 내 질문의 마지막 단락을 발견하면 셀레늄을 사용할 필요가없는 방법을 찾고 있습니다. –

+0

죄송합니다. 일부 업데이트를했습니다. –

+0

감사합니다. 셀렌 테스트를 설정하는 것보다 개선되었습니다. 하나의 뷰 템플릿에서 하나의 함수를 테스트 할 때 여전히 과도한 느낌이 들지만, 그럴 경우 커스텀 스터프를 작성하는 것이 가장 좋지 않을 수 있습니다. –