11

Được chấp nhận là C# NUnit guy this this odd.Thử nghiệm đơn vị tham số hoa nhài

Nhưng hoa nhài có cho phép thử nghiệm đơn vị tham số không?

Tôi không chắc chắn nếu nó đi ngược lại "tuyên bố" và "nó" để làm cho mọi thứ dễ đọc đối với những người không lập trình.

Tôi đã thấy một số plug-in của bên thứ ba nhưng chúng là loại cũ, không chắc chắn nếu nó đã được thêm vào hoa nhài. Nếu tôi muốn sử dụng phích cắm trong

Chỉ để giúp bất kỳ ai tìm thấy điều này trong tương lai, tôi đã được thông báo trên diễn đàn hoa nhài Không có hỗ trợ lớp học đầu tiên cho các bài kiểm tra tham số trong chính Jasmine.

+0

Bạn có thể đăng câu trả lời mà bạn tìm thấy trên diễn đàn Jasmine dưới dạng câu trả lời cho câu hỏi của riêng bạn và chấp nhận câu hỏi đó. – TrueWill

Trả lời

3

tôi đã không làm việc với hoa nhài kể từ một thời gian dài nhưng nó là khá dễ dàng để thêm các xét nghiệm tham số:

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

chỉ với một vài dòng mã cơ sở hạ tầng:

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

tùy thuộc vào cú pháp và mong muốn bạn muốn thay đổi đối tượng js mặc định, bạn có nhiều tùy chọn: http://blog.piotrturski.net/2015/04/jasmine-parameterized-tests.html

12

Dựa trên piotrek's answer và bài viết Parameterized testing in Javascript, bạn cũng có thể sử dụng các phương pháp sau đây trong đó sử dụng cú pháp ES6:

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

Tôi đã thử nghiệm nó với test framework đùa, nhưng nó phải làm việc với Jasmine là tốt.

+2

Điều này thực sự làm việc với Jasmine là tốt. – Shadow

Các vấn đề liên quan