[{"data":1,"prerenderedAt":264},["ShallowReactive",2],{"term-m\u002Fmocha":3,"related-m\u002Fmocha":250},{"id":4,"title":5,"acronym":6,"body":7,"category":231,"description":232,"difficulty":233,"extension":234,"letter":235,"meta":236,"navigation":98,"path":237,"related":238,"seo":244,"sitemap":245,"stem":248,"subcategory":6,"__hash__":249},"terms\u002Fterms\u002Fm\u002Fmocha.md","Mocha",null,{"type":8,"value":9,"toc":225},"minimark",[10,15,19,23,35,39,214,218,221],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Mocha is an older, flexible JavaScript test runner that lets you pick your own assertion library and mocking tools. It's like a buffet — Mocha provides the plates, and you bring your own food (Chai for assertions, Sinon for mocks). More setup, more control.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25,26,30,31,34],{},"Mocha is a flexible JavaScript test framework for Node.js that provides ",[27,28,29],"code",{},"describe","\u002F",[27,32,33],{},"it"," blocks and lifecycle hooks (before, after, beforeEach, afterEach). Unlike Jest, it doesn't include assertions or mocking — you combine it with Chai and Sinon.",[11,36,38],{"id":37},"show-me-the-code","Show Me The Code",[40,41,46],"pre",{"className":42,"code":43,"language":44,"meta":45,"style":45},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const { expect } = require('chai');\n\ndescribe('Calculator', () => {\n  it('should add two numbers', () => {\n    expect(add(2, 3)).to.equal(5);\n  });\n});\n","javascript","",[27,47,48,93,100,126,150,195,205],{"__ignoreMap":45},[49,50,53,57,61,65,68,71,75,78,81,85,87,90],"span",{"class":51,"line":52},"line",1,[49,54,56],{"class":55},"spNyl","const",[49,58,60],{"class":59},"sMK4o"," {",[49,62,64],{"class":63},"sTEyZ"," expect ",[49,66,67],{"class":59},"}",[49,69,70],{"class":59}," =",[49,72,74],{"class":73},"s2Zo4"," require",[49,76,77],{"class":63},"(",[49,79,80],{"class":59},"'",[49,82,84],{"class":83},"sfazB","chai",[49,86,80],{"class":59},[49,88,89],{"class":63},")",[49,91,92],{"class":59},";\n",[49,94,96],{"class":51,"line":95},2,[49,97,99],{"emptyLinePlaceholder":98},true,"\n",[49,101,103,105,107,109,112,114,117,120,123],{"class":51,"line":102},3,[49,104,29],{"class":73},[49,106,77],{"class":63},[49,108,80],{"class":59},[49,110,111],{"class":83},"Calculator",[49,113,80],{"class":59},[49,115,116],{"class":59},",",[49,118,119],{"class":59}," ()",[49,121,122],{"class":55}," =>",[49,124,125],{"class":59}," {\n",[49,127,129,132,135,137,140,142,144,146,148],{"class":51,"line":128},4,[49,130,131],{"class":73},"  it",[49,133,77],{"class":134},"swJcz",[49,136,80],{"class":59},[49,138,139],{"class":83},"should add two numbers",[49,141,80],{"class":59},[49,143,116],{"class":59},[49,145,119],{"class":59},[49,147,122],{"class":55},[49,149,125],{"class":59},[49,151,153,156,158,161,163,167,169,172,175,178,181,183,186,188,191,193],{"class":51,"line":152},5,[49,154,155],{"class":73},"    expect",[49,157,77],{"class":134},[49,159,160],{"class":73},"add",[49,162,77],{"class":134},[49,164,166],{"class":165},"sbssI","2",[49,168,116],{"class":59},[49,170,171],{"class":165}," 3",[49,173,174],{"class":134},"))",[49,176,177],{"class":59},".",[49,179,180],{"class":63},"to",[49,182,177],{"class":59},[49,184,185],{"class":73},"equal",[49,187,77],{"class":134},[49,189,190],{"class":165},"5",[49,192,89],{"class":134},[49,194,92],{"class":59},[49,196,198,201,203],{"class":51,"line":197},6,[49,199,200],{"class":59},"  }",[49,202,89],{"class":134},[49,204,92],{"class":59},[49,206,208,210,212],{"class":51,"line":207},7,[49,209,67],{"class":59},[49,211,89],{"class":63},[49,213,92],{"class":59},[11,215,217],{"id":216},"when-youll-hear-this","When You'll Hear This",[16,219,220],{},"\"This project uses Mocha + Chai — don't use Jest matchers here.\" \u002F \"Mocha is more flexible but Jest is simpler to set up.\"",[222,223,224],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":45,"searchDepth":95,"depth":95,"links":226},[227,228,229,230],{"id":13,"depth":95,"text":14},{"id":21,"depth":95,"text":22},{"id":37,"depth":95,"text":38},{"id":216,"depth":95,"text":217},"testing","Mocha is an older, flexible JavaScript test runner that lets you pick your own assertion library and mocking tools.","intermediate","md","m",{},"\u002Fterms\u002Fm\u002Fmocha",[239,240,241,242,243],"Chai","Jest","Vitest","Test Runner","Sinon",{"title":5,"description":232},{"changefreq":246,"priority":247},"weekly",0.7,"terms\u002Fm\u002Fmocha","TqioysNgZy5H7BGKmjPImPf8_yYzDu97zEsNOb30XxU",[251,254,258,261],{"title":239,"path":252,"acronym":6,"category":231,"difficulty":233,"description":253},"\u002Fterms\u002Fc\u002Fchai","Chai is an assertion library that makes your test checks read like English. Instead of `assert.equal(x, 5)` you can write `expect(x).to.",{"title":240,"path":255,"acronym":6,"category":231,"difficulty":256,"description":257},"\u002Fterms\u002Fj\u002Fjest","beginner","Jest is the most popular JavaScript testing framework.",{"title":242,"path":259,"acronym":6,"category":231,"difficulty":256,"description":260},"\u002Fterms\u002Ft\u002Ftest-runner","A test runner is the thing that actually runs your tests and tells you which ones passed and which ones failed.",{"title":241,"path":262,"acronym":6,"category":231,"difficulty":256,"description":263},"\u002Fterms\u002Fv\u002Fvitest","Vitest is a blazing-fast test runner built on Vite. If Jest is the reliable sedan, Vitest is the electric sports car — same driving experience, 10x faster.",1776518295561]