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?