2017-09-05 1 views
1

저는 웹 페이지로 이동하여 페이지의 요소를 기반으로 목록을 채우는 beforeAll 함수가 있습니다. 이러한 요소의 양은 사용자가 UI에서 수행하는 작업에 따라 다릅니다.재스민은 변수 목록 크기에 따라 달라지는 사양을 만듭니다.

let variableList = [] 

beforeAll(() => {populate a list with elements found in the page} 

그런 다음, 나는 내 목록의 모든 요소에 동일한 테스트를하고 싶어, 나는 각 요소에 대한 사양을 작성하려는 (이러한 요소가 변경 될 수 있으므로, 그 아주 긴 목록)하지 않습니다.

해당 사양을 실행하는 데 너무 오래 걸리는 것처럼 고유 한 사양 내에서 목록을 사용하고 싶지 않습니다. 오히려 내 목록의 각 구성 요소에 대해 하나의 사양을 가지고 있습니다.

variableList.map(element => { 
    it('should run a spec for each list element', function(()=>{ 
    //Using element to perform the tests 

    }) 
}) 

이 코드를 실행하면 beforeAll 함수가 variableList를 채우지 않습니다. 목록은 채워지지 않고 사용됩니다.

내가 더 나은 접근 방식을 가질 수있는 방법에 대한 아이디어가 있습니까?

미리 감사드립니다.

답변

0

Jasmine에서 beforeEach(), afterEach(), beforeAll(), afterAll() 또는 it() 함수 내에서 발생하는 코드는 테스트가 실제로 실행될 때만 실행됩니다. 다른 모든 코드 (describe() 함수 포함)는 테스트 러너가 시작될 때 발생합니다. 단일 비동기 테스트 내에서 모든 작업을 수행하는 것이 좋습니다.

it("tests all the elements", done => { 
    getElementFromOtherPage().then(elements => { 
     element.forEach(runTestOnElement); 
     done(); 
    }); 
}); 

매우 우아하지는 않지만 올바르게 작동해야합니다.

관련 문제