2014-02-12 2 views

답변

0

모든 테스트를 시작하기 전에 함수를 호출하는 것은 간단합니다. 그러나 Jasmine (1.3.1 이상)은 리포터 API 외부에서 완성 된 콜백을 지정할 수 없습니다.

여기에 내가 찾은 간단한 해킹이 Google Groups입니다. SpecRunner.html 또는 이에 상응하는 항목에 추가하십시오.

var oldCallback = jasmineEnv.currentRunner().finishCallback; 

jasmineEnv.currentRunner().finishCallback = function() { 
    oldCallback.apply(this, arguments); 

    // Do your code here 
}; 

jasmineEnv.execute(); 
0

자스민은 자신의 기자를 작성하고 첨부 할 수있는 옵션을 제공합니다. 리포터를 구현하려면 initialize, jasmineStartedjasmineDone과 같은 기본적인 콜백이 있습니다. 이를 통해 귀하는 귀하의 요구 사항을 달성 할 수 있습니다. 예를 들어 Jasmine 2.0의 경우 기본 이해를 위해 jasmine-html.js 파일을 참조하십시오.

+0

그 파일은 어디에 있습니까? – pharaon450

+0

Jasmine2.0 독립형 릴리스를 확인하십시오. 파일 위치는 "jasmine-standalone-2.0.0 \ lib \ jasmine-2.0.0 \ jasmine-html.js"입니다. – user3037143

9

예쁜 간단한 해결책은 :

describe("all o' my tests", function() { 

    it("setup for all tests", function() { 
    setItUp(); 
    }); 

    describe("actual test suite", function() { 

    }); 

    it("tear down for all tests", function() { 
    cleanItUp(); 
    }); 

}); 

이것은 당신이 정말 어디서든 설치/해체를 넣을 수있는 장점 (. 중첩 된 제품군의 예를 들어 시작에서/끝)가 있습니다.

+0

그리고 이것은 비동기 테스트와 함께 작동하는 것 같습니다. – AJP

+1

'it' 블록에서 상태를 변경하면 코드 냄새가 날 수도 있습니다. 'it' 블록은 전적으로 로직리스 어설 션을위한 것입니다. – gnerkus

6

재 스민 (Jasmine) = 2.1은 스위트에 일회성 설정 및 해체를 수행 할 때 beforeAll/afterAll을 지원합니다.

당신은 재스민 1.x에서 당신이 (다른 사람에 의해 제안)이 대한 it을 사용하거나 예를 jasmine-before-all 위해/Afterall는 beforeAll을 지원하는 node_module를로드 할 수 사용하는 경우.

관련 문제