好吧,作爲一個C#NUnit的傢伙,這可能很奇怪。茉莉花參數化單元測試
但茉莉允許參數化單元測試嗎?
我不確定它是否違背了「聲明」和「它」使非程序員可讀的東西。
我已經看到一些第三方插件,但他們有點老,不知道它是否已被添加到茉莉花。 如果我需要使用插件
只是爲了幫助任何在未來發現此問題的人,我已被告知jasmine論壇Jasmine本身沒有對參數化測試的一流支持。
好吧,作爲一個C#NUnit的傢伙,這可能很奇怪。茉莉花參數化單元測試
但茉莉允許參數化單元測試嗎?
我不確定它是否違背了「聲明」和「它」使非程序員可讀的東西。
我已經看到一些第三方插件,但他們有點老,不知道它是否已被添加到茉莉花。 如果我需要使用插件
只是爲了幫助任何在未來發現此問題的人,我已被告知jasmine論壇Jasmine本身沒有對參數化測試的一流支持。
我沒有因爲長時間用茉莉工作,但它是很容易添加參數測試:
['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
基於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);
});
});
我已經用玩笑測試框架測試,但它應該與茉莉花正常工作。
這確實與茉莉花一起工作。 – Shadow
你可以發佈你在Jasmine論壇上找到的答案,作爲你自己問題的答案並接受它。 – TrueWill