![](/img/trans.png)
[英]Protractor + Jasmine: Run same test in parallel with different data inputs
[英]Test cases in Jasmine. Is it possible to run the same test on multiple different data sets?
我想使用不同的测试数据多次运行 Jasmine 测试,当任何测试失败时,应该很容易识别特定的测试用例。
在 NUnit 测试框架中,这可以通过 TestCase 属性实现。
我尝试将 it 块放在 foreach 块中,虽然测试显示,但它们没有运行,如下所示:
以下是我尝试过的实现:
/// <reference path="../Jasmine/jasmine.js"/>
/// <reference path="../Jasmine/jasmine-html.js"/>
/// <reference path="../../Site/wwwroot/lib/jquery/dist/jquery.js"/>
/// <reference path="../../Site/wwwroot/js/nlHoldem.js"/>
describe("nlHoldem.js", function () {
var mockHtml;
var deckOfCards = [
{ id: 'ace-of-spades' },
{ id: 'king-of-spades' }
];
beforeEach(function () {
mockHtml = getMockHtml();
$(document.body).append(mockHtml);
nlHoldem.init();
});
afterEach(function () {
$('#mock-html-container').remove();
sessionStorage.clear();
});
deckOfCards.forEach(function (card) {
it("should add styling of top -5px to "+ card.id +" on mouseover", function () {
// Arrange
var targetCard = $("#" + card.id);
// Act
targetCard.mouseover();
// Assert
expect(targetCard.css("top")).toBe("-5px");
});
});
});
如果您想显示 for 循环中哪个特定测试用例失败(在 @ruby_newbie 建议的 it 块内),您可以添加自定义失败消息,如下所示:
it("should add styling of top -5px to card on mouseover", function () {
deckOfCards.forEach(function(card) {
// Arrange
var targetCard = $("#" + card.id);
// Act
targetCard.mouseover();
// Assert
expect(targetCard.css("top")).toBe("-5px", "failed on: " + card.id);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.