11

좋아, C# NUnit 녀석으로 이것은 이상 할 수도 있습니다.재스민 매개 변수화 단위 테스트

그러나 자스민은 매개 변수가있는 단위 테스트를 허용합니까?

"declare"와 "it"에 반대하여 비 프로그래머가 읽을 수있게 만들지 모르겠다.

제 3 자 플러그인을 본 적이 있지만 재스민에 추가되었는지는 확실하지 않습니다. 만약 플러그를 사용하고 싶다면

자스민 포럼에 관해서는 잘 알고 있습니다. Jasmine 자체 내에서 매개 변수화 된 테스트에 대한 일등급 지원은 없습니다.

+0

자스민 포럼에서 찾은 답변을 자신의 질문에 대한 답변으로 게시하고 동의 할 수 있습니다. – TrueWill

답변

3

나는 긴 시간 이후 자스민과 협력하지 않은하지만 매개 변수 테스트를 추가 할 수 꽤 쉬웠다 :

Array.prototype.it = function(description, testCaseFunction) { 
    _(this) 
     .chunk(testCaseFunction.length) 
     .each(function(innerArray){ 
       it(description + ' ' + JSON.stringify(innerArray), function(){ 
        testCaseFunction.apply(this, innerArray); 
       });  
     }) 
     .value(); 
}; 

에 따라 : 인프라 단 몇 줄의 코드로

['abc', 3, 
    'ab', 4, 
    '', 0]. 
it('should contain string length', function(string, expected){ 
    expect(string.length).toBe(expected); 
}); 

을 원하는 구문과 기본 js 객체를 변경할 의사가있는 경우 많은 옵션이 있습니다. http://blog.piotrturski.net/2015/04/jasmine-parameterized-tests.html

12

piotrek's answerParameterized testing in Javascript은 또한 ES6 구문을 사용하는 다음 방법 사용할 수 있습니다 나는 농담 테스트 프레임 워크를 테스트 한

[ 
    ['abc', 3], 
    ['ab', 2], 
    ['', 0], 
].forEach(([string, expectedLength]) => { 
    it(`should return length ${expectedLength} for string "${string}"`,() => { 
    expect(string.length).toBe(expectedLength); 
    }); 
}); 

을하지만, 그것은뿐만 아니라 재스민과 함께 작동합니다.

+2

이것은 실제로 Jasmine에서도 잘 작동합니다. – Shadow

관련 문제