2017-12-11 1 views
0

저는 재스민에 새로운 시도를하고 있으며 재스민에서 공유 단계를 구현하려고합니다. 2 가지 시나리오간에 몇 가지 단계를 공유하려고합니다. 그래서 그냥 블록 안에 공유 된 설명 블록을 실행하려고 시도하고 그것을 실행하지 않습니다. 아래는 샘플 코드입니다.각도기 자스민은 그 안에 블록이 작동하지 않는다고 말합니다.

describe('Main Method 1',(){ 
    it('Function 1',(){ 
     console.log('Function 1'); 
     describe('Function 1',(){ 
     it('Function 1.1',(){ 
     console.log('Function 1.1'); 
     }) 
     it('Function 1.2',(){ 
     console.log('Function 1.2'); 
     }) 
     }); 
    }); 
    it('Function 2',(){ 
     console.log('Function 2'); 
     describe('Function 2',(){ 
     it('Function 2.1',(){ 
     console.log('Function 2.1'); 
     }) 
     it('Function 2.2',(){ 
     console.log('Function 2.2'); 
     }) 
     }); 
    }); 
}); 

이 함수 1과 함수 2는 다른 시나리오입니다. Main Method1과 특정 시나리오를 공유하고 싶었습니다.

기능 1 & 기능 2가 인쇄되고 기능 1.1 기능 1.2, 기능 2.1 및 기능 2.2가 인쇄되지 않습니다.

누군가가 이것에 대한 아이디어를 나눌 수 있습니다.

실제 구현

describe('Main Method',(){ 
    it('F1',() { 
     Function1(); 
    }); 
    it('F2',() { 
     Function2(); 
    }); 
}); 

Function1(){ 
    describe('Function 1',(){ 
    it('Function 1.1',(){ 
    console.log('Function 1.1'); 
    }) 
    it('Function 1.2',(){ 
    console.log('Function 1.2'); 
    }) 
    }); 
} 
Function2(){ 
    describe('Function 2',(){ 
    it('Function 2.1',(){ 
    console.log('Function 2.1'); 
    }) 
    it('Function 2.2',(){ 
    console.log('Function 2.2'); 
    }) 
    }); 
} 

답변

2

당신은 하나 describe에 모든 유사한 테스트를 포장 할 수 있습니다 더 좋아하고 당신이 그들 앞에 뭔가를 호출 할 경우, 당신은 beforeAll를 사용하는 경우 다음 afterAll 후. 또한 beforeEach() 기능을 사용하여 테스트간에 무언가를 할 수 있습니다.

각 블록은 하나의 작업 (예 : '브라우저 열기', '로그인 버튼 클릭'등)을 수행해야하므로 describe 블록을 it 내부에 두는 것이 좋습니다.

describe('Main Method 1',() { 

    describe('Function 1',() { 

    beforeAll(function() { 
     console.log('Start of Function 1'); 
    }); 

    beforeEach(function() { 
     console.log('Start of next test'); 
    }); 

    afterAll(function() { 
     console.log('End of Function 1'); 
    }); 

    it('Function 1.1',(){ 
     OpenPage(); 
    }); 

    it('Function 1.2',(){ 
     console.log('Function 1.2'); 
    }); 
    }); 

    describe('Function 2',() { 

    beforeAll(function() { 
     console.log('Start of Function 2'); 
    }); 

    it('Function 2.1',(){ 
     OpenPage(); 
    }); 

    it('Function 2.2',(){ 
     console.log('Function 2.2'); 
    }); 
    }); 
}); 

function OpenPage() { 
    // open page 
    browser.get('http://google.com/'); 
    // More code you don't want to repeat. 
} 
+0

설명 Function1 및 Function 2는 설명하는 Main Method에서 해당 테스트 케이스를 재사용하려는 별도의 테스트 케이스입니다. (코드의 중복을 피하기 위해). –

+1

호출 할 함수를 만들 수 있습니다. 그것이 그들이하는 일입니다. – FCin

+0

방금 ​​함수 호출로 질문을 업데이트했습니다 ... 함수 내부에서 it 블록을 실행하지 않습니다 .. –

관련 문제