2016-09-22 1 views
2

나는 Karma js 테스트를 설정하고 작성하는 것이 약간 번거롭고이 때문에 필기 테스트를 종종 무시하므로 필자는 더 나은 대안이 있는지 알고 싶었다.어떤 테스트 프레임 워크가 TypeScript의 인라인 테스트를 지원합니까?

나는 이런 식으로 뭔가 쓸 수 있다면 나는 것이 내 꿈의 시나리오를 타이프 ​​라이터 사용 가입일 :

module adder { 
    export function add(a, b){ 
     return a + b; 
    } 
} 
[Tests] 
assert.equal(4, adder.add(2, 2)); 

내 테스트 인라인이며, 현재 파일의 변경 사항이 발생할 때 내 편집기에서 직접 실행할 수 것입니다. 타이프 스크립트는 최종 출력에서 ​​테스트를 쉽게 제거 할 수 있기 때문에 테스트를 내 코드와 동일한 파일에 넣을 수 있습니다. 모든 테스팅 프레임 워크가이를 지원하고, 그렇지 않은 경우이 시나리오를 지원하는 데 필요한 것은 무엇인가.

답변

2

단지 보수주의 사항 - 카르마는 테스트 주자가 아니라 테스트 프레임 워크입니다. 그러나 Jasmine, Mocha, QUnit 또는 자체 롤 테스트 프레임 워크를 사용할 수 있습니다.

이러한 유형의 동작을 수행하려면 데코레이터 구문을 사용할 수 있습니다. 뭔가 같이 :

describe('AdderTests',() => { 
    it('should add 2 and 2',() => { 
     expect(adder.add(2,2)).toBe(4); 
    } 

}); 

이상적, 즉 귀하의 :

[Test] 
assert.equal(...) 

이 아닌가

@TestSuite 
class AdderTests { 
    @Test 
    test1() { 
     assert.equal(4, adder.add(2,2)); 
    } 
    @Test 
    test2() { 
     assert.equal(0, adder.add(2,-2)); 
    } 

} 

이 말을하는 데,하지만 테스트 코드의 구조는 재스민 구문과 매우 유사 TypeScript 데코레이터 또는 제네릭을 사용하여 실제로 가능합니다. 임의의 코드 행에 속성을 적용하려고합니다. 자바 스크립트 범위 지정 규칙을 올바르게 사용하려면 시작을위한 함수 여야합니다.

[Test] 
test1() { assert.equal(...) }; 
관련 문제