ブラウザ内で直接 Mocha を実行することで、ヘッドレス環境でのエミュレーションなしに DOM API、CSS レイアウト、Web プラットフォームの挙動をテストできます。
スタンドアロン HTML ランナーテンプレート
この内容を test/index.html として保存し、任意のブラウザで直接開きます:
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Mocha Browser Test Suite</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://unpkg.com/mocha/mocha.css" />
</head>
<body>
<!-- Mocha がテスト結果を描画するコンテナ要素 -->
<div id="mocha"></div>
<!-- テストフレームワークとアサーションライブラリ -->
<script src="https://unpkg.com/mocha/mocha.js"></script>
<script src="https://unpkg.com/chai/chai.js"></script>
<script>
// Mocha の BDD モードを初期化
mocha.setup('bdd');
window.expect = chai.expect;
</script>
<!-- テスト対象のソースコード -->
<script src="../src/calculator.js"></script>
<!-- テストスイートのファイル -->
<script src="calculator.test.js"></script>
<script>
// テストスイートを実行
mocha.run();
</script>
</body>
</html>
ブラウザ向けテストファイルの例
test/calculator.test.js の記述例:
describe('Browser Calculator', () => {
it('adds numbers accurately', () => {
expect(Calculator.add(2, 3)).to.equal(5);
});
it('inspects DOM elements', () => {
const el = document.createElement('div');
el.id = 'target';
document.body.appendChild(el);
expect(document.getElementById('target')).to.not.be.null;
document.body.removeChild(el);
});
});