11

Хорошо, как парень C# NUnit, это может быть странно.Жасмин параметризованный модульный тест

Но делает ли жасмин параметризованным модульным тестом?

Я не уверен, что это противоречит «объявить» и «это», чтобы сделать чтение понятным для не-программистов.

Я видел некоторые сторонние плагины, но они вроде старые, не уверен, что он добавлен в жасмин. Если я использую вилку в

Просто, чтобы помочь любому, кто найдет это в будущем, мне сказали на форуме жасмина. Нет никакой первой поддержки класса для параметризованных тестов в самой Жасмине.

+0

Вы можете опубликовать ответ, который вы нашли на форуме Jasmine, в качестве ответа на свой вопрос и принять его. – TrueWill

ответ

3

я не работал с жасмином, поскольку долгое время, но это было довольно легко добавлять параметризованные тесты:

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

с помощью всего нескольких строк кода инфраструктуры:

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

в зависимости от ваш желаемый синтаксис и желание изменить объекты js по умолчанию, у вас есть много вариантов: http://blog.piotrturski.net/2015/04/jasmine-parameterized-tests.html

12

На основании piotrek's answer и статьи Parameterized 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); 
    }); 
}); 

Я проверил его с тестовым рамками Jest, но он должен работать с жасмином, а также.

+2

Это действительно работает с Жасмином. – Shadow

Смежные вопросы