Тестовые случаи в Жасмин.Можно ли выполнить один и тот же тест на нескольких разных наборах данных? - PullRequest
2 голосов
/ 10 июля 2019

Я хотел бы запускать тесты Jasmine несколько раз, используя разные тестовые данные, и, если какой-либо тест не пройден, этот конкретный тестовый случай должен быть легко идентифицирован.

В инфраструктуре тестирования NUnit это может быть достигнуто с помощью атрибута TestCase.

Я попытался поместить блок it внутрь блока foreach, и хотя тесты показывают, они не запускаются, как можно увидеть здесь:

enter image description here

Ниже приведена реализация, которую я пробовал:

/// <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");
        });
    });
});

1 Ответ

1 голос
/ 10 июля 2019

Если вы хотите показать, какой конкретный тестовый пример не прошел в цикле for (внутри блока it, как предложено @ruby_newbie), вы можете добавить собственное сообщение об ошибке, например:

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);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...