11

C# NUnit'li bir kullanıcı olarak bu durum garip olabilir.yasemin parametrelenmiş birim testi

Fakat yasemin parametreli birim testine izin veriyor mu?

Öğeleri programcı olmayan kişilere okunabilir hale getirmek için "declare" ve "it" karşı olup olmadığından emin değilim.

Bazı üçüncü parti eklentileri görmüştüm ama yassı bir şey olup olmadığından emin değiller.

'da bir fiş kullanmayı tercih edersem Sadece bunu gelecekte bulan herkesin yardımına yardımcı olmak için yasemin forumundan bahsedildi Yasemin'de parametrelenmiş testler için birinci sınıf destek yoktur.

+0

Jasmine forumunda bulduğunuz cevabı kendi sorunuzun cevabı olarak gönderebilir ve kabul edebilirsiniz. – TrueWill

cevap

3

ben uzun zamandan beri yasemin ile çalıştı değil ama parametreli test eklemek için oldukça kolaydı:

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

bağlı: altyapı kod sadece birkaç satır ile

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

İstediğiniz sözdizimi ve varsayılan js nesnelerini değiştirme isteğiniz, çok sayıda seçeneğiniz vardır: http://blog.piotrturski.net/2015/04/jasmine-parameterized-tests.html

12

piotrek's answer venumaralı makaleye göre, ayrıca ES6 sözdizimi kullanıldığı aşağıdaki yöntemi kullanabilirsiniz: Ben Jest Test çerçevesi ile test ettik

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

, ama aynı zamanda Jasmine ile birlikte çalışmalıdır.

+2

Bu aslında Jasmine ile de çalışır. – Shadow