Mocha тестирует файлы JS, которые не являются модульными

Я чувствую, что действительно неправильно что-то понимаю в отношении тестирования.

Допустим, у меня есть файл сценария, который содержит все функциональные возможности для небольшого проекта:

script.js

const cards = {
    suits: ['clubs', 'diamonds', 'hearts', 'spades'],
    face: ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'],
    createDeck: function createDeck(deckArrayName, faceUp) {
        this.suits.forEach((suit) => {
            this.face.forEach((face, index) => {
                const card = {
                    face,
                    suit,
                    value: index + 1,
                    faceUp,
                }
                deckArrayName.push(card);
            });
        });
    },
}

let deck = [];
cards.createDeck(deck, true); 

И затем я загружаю это в мой HTML-файл, так что у нас есть это:

index.html

<body>
    <h1>Cards.</h1>
    <div id="table"></div>
</body>
<footer>
    <script src="./js/script.js"></script>
</footer>

Это все работает, как ожидалось. Я использую Gulp для упаковки всего, и я написал сценарии для автоматического создания версий dist / deploy на страницах GitHub и т. Д. И теперь я тоже хочу протестировать. Поэтому я добавил Mocha и добавил задачу Gulp, чтобы при каждом сохранении файла.js тесты выполнялись повторно, и все это прекрасно работает.

Проблема в том, что я понятия не имею, как проверить, скажем, createDeck метод в моем cards объект, который находится в script.js,

Мне не нужно использовать модули, потому что а) я не хочу все подвергать рефакторингу и б) Gulp не слишком хорошо с ними работает, и пока не будет встроенной поддержки браузера, я бы предпочел этого не делать.

Как мне протестировать JS из CLI, используя Mocha и не используя модули ES6?

0 ответов

Другие вопросы по тегам