繁体   English   中英

Jasmine 中的测试用例。 是否可以在多个不同的数据集上运行相同的测试?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM