2016-10-26 4 views
1

Есть ли у них какой-либо способ иметь несколько параметров в одном тесте вместо копирования и вставки функции снова?Многократное тестирование JS Unit с различными параметрами

Пример в NUnit для C#:

[TestCase("0", 1)] 
[TestCase("1", 1)] 
[TestCase("2", 1)] 
public void UnitTestName(string input, int expected) 
{ 
    //Arrange 

    //Act 

    //Assert 
} 

То, что я хочу в Js:

describe("<Foo />",() => { 

    [TestCase("false")] 
    [TestCase("true")] 
    it("option: enableRemoveControls renders remove controls", (enableRemoveControls) => { 
     mockFoo.enableRemoveControls = enableRemoveControls; 

     //Assert that the option has rendered or not rendered the html 
    }); 
}); 
+0

Просто сделайте новую функцию и назовите ее, я думаю. В общем, поскольку вы передаете обратный вызов 'it' (и' describe' и т. Д.), Вы можете просто сделать функцию, которая возвращает функцию callback 'function makeTest (ввод, ожидаемый) {return function() {assert (input == = expected)}) 'тогда просто назовите его в своих тестах' it ("pass", makeTest (1, 1)) 'и измените аргументы' it ("fail", makeTest ("apple", "orange")) ' – vlaz

ответ

2

Вы можете поместить it -Call внутри функции и вызвать его с различными параметрами:

describe("<Foo />",() => { 

    function run(enableRemoveControls){ 
     it("option: enableRemoveControls renders remove controls",() => { 
      mockFoo.enableRemoveControls = enableRemoveControls; 

      //Assert that the option has rendered or not rendered the html 
     }); 
    } 

    run(false); 
    run(true); 
}); 
Смежные вопросы