[{"data":1,"prerenderedAt":337},["ShallowReactive",2],{"term-t\u002Ftest-case":3,"related-t\u002Ftest-case":320},{"id":4,"title":5,"acronym":6,"body":7,"category":301,"description":302,"difficulty":303,"extension":304,"letter":305,"meta":306,"navigation":197,"path":307,"related":308,"seo":314,"sitemap":315,"stem":318,"subcategory":6,"__hash__":319},"terms\u002Fterms\u002Ft\u002Ftest-case.md","Test Case",null,{"type":8,"value":9,"toc":295},"minimark",[10,15,28,32,35,39,284,288,291],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18,19,23,24,27],"p",{},"A test case is one specific scenario you want to check. 'Does the login work with a correct password?' — that's a test case. 'Does it fail with a wrong password?' — that's another test case. Each ",[20,21,22],"code",{},"test()"," or ",[20,25,26],{},"it()"," block is one test case.",[11,29,31],{"id":30},"real-talk","Real Talk",[16,33,34],{},"A test case is an individual test that verifies a specific behavior or scenario. It typically follows the AAA pattern: Arrange the preconditions, Act by calling the code under test, and Assert that the result matches expectations.",[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","test('returns 404 when user not found', async () => {\n  \u002F\u002F Arrange\n  const req = { params: { id: 'nonexistent' } };\n  const res = { status: jest.fn().mockReturnThis(), json: jest.fn() };\n\n  \u002F\u002F Act\n  await getUser(req, res);\n\n  \u002F\u002F Assert\n  expect(res.status).toHaveBeenCalledWith(404);\n});\n","javascript","",[20,47,48,87,94,137,192,199,205,230,235,241,274],{"__ignoreMap":45},[49,50,53,57,61,65,69,71,74,78,81,84],"span",{"class":51,"line":52},"line",1,[49,54,56],{"class":55},"s2Zo4","test",[49,58,60],{"class":59},"sTEyZ","(",[49,62,64],{"class":63},"sMK4o","'",[49,66,68],{"class":67},"sfazB","returns 404 when user not found",[49,70,64],{"class":63},[49,72,73],{"class":63},",",[49,75,77],{"class":76},"spNyl"," async",[49,79,80],{"class":63}," ()",[49,82,83],{"class":76}," =>",[49,85,86],{"class":63}," {\n",[49,88,90],{"class":51,"line":89},2,[49,91,93],{"class":92},"sHwdD","  \u002F\u002F Arrange\n",[49,95,97,100,103,106,109,113,116,118,121,123,126,129,131,134],{"class":51,"line":96},3,[49,98,99],{"class":76},"  const",[49,101,102],{"class":59}," req",[49,104,105],{"class":63}," =",[49,107,108],{"class":63}," {",[49,110,112],{"class":111},"swJcz"," params",[49,114,115],{"class":63},":",[49,117,108],{"class":63},[49,119,120],{"class":111}," id",[49,122,115],{"class":63},[49,124,125],{"class":63}," '",[49,127,128],{"class":67},"nonexistent",[49,130,64],{"class":63},[49,132,133],{"class":63}," }",[49,135,136],{"class":63}," };\n",[49,138,140,142,145,147,149,152,154,157,160,163,166,168,171,173,175,178,180,182,184,186,189],{"class":51,"line":139},4,[49,141,99],{"class":76},[49,143,144],{"class":59}," res",[49,146,105],{"class":63},[49,148,108],{"class":63},[49,150,151],{"class":111}," status",[49,153,115],{"class":63},[49,155,156],{"class":59}," jest",[49,158,159],{"class":63},".",[49,161,162],{"class":55},"fn",[49,164,165],{"class":111},"()",[49,167,159],{"class":63},[49,169,170],{"class":55},"mockReturnThis",[49,172,165],{"class":111},[49,174,73],{"class":63},[49,176,177],{"class":111}," json",[49,179,115],{"class":63},[49,181,156],{"class":59},[49,183,159],{"class":63},[49,185,162],{"class":55},[49,187,188],{"class":111},"() ",[49,190,191],{"class":63},"};\n",[49,193,195],{"class":51,"line":194},5,[49,196,198],{"emptyLinePlaceholder":197},true,"\n",[49,200,202],{"class":51,"line":201},6,[49,203,204],{"class":92},"  \u002F\u002F Act\n",[49,206,208,212,215,217,220,222,224,227],{"class":51,"line":207},7,[49,209,211],{"class":210},"s7zQu","  await",[49,213,214],{"class":55}," getUser",[49,216,60],{"class":111},[49,218,219],{"class":59},"req",[49,221,73],{"class":63},[49,223,144],{"class":59},[49,225,226],{"class":111},")",[49,228,229],{"class":63},";\n",[49,231,233],{"class":51,"line":232},8,[49,234,198],{"emptyLinePlaceholder":197},[49,236,238],{"class":51,"line":237},9,[49,239,240],{"class":92},"  \u002F\u002F Assert\n",[49,242,244,247,249,252,254,257,259,261,264,266,270,272],{"class":51,"line":243},10,[49,245,246],{"class":55},"  expect",[49,248,60],{"class":111},[49,250,251],{"class":59},"res",[49,253,159],{"class":63},[49,255,256],{"class":59},"status",[49,258,226],{"class":111},[49,260,159],{"class":63},[49,262,263],{"class":55},"toHaveBeenCalledWith",[49,265,60],{"class":111},[49,267,269],{"class":268},"sbssI","404",[49,271,226],{"class":111},[49,273,229],{"class":63},[49,275,277,280,282],{"class":51,"line":276},11,[49,278,279],{"class":63},"}",[49,281,226],{"class":59},[49,283,229],{"class":63},[11,285,287],{"id":286},"when-youll-hear-this","When You'll Hear This",[16,289,290],{},"\"Write a test case for the empty cart scenario.\" \u002F \"This test case covers the happy path only.\"",[292,293,294],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}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":89,"depth":89,"links":296},[297,298,299,300],{"id":13,"depth":89,"text":14},{"id":30,"depth":89,"text":31},{"id":37,"depth":89,"text":38},{"id":286,"depth":89,"text":287},"testing","A test case is one specific scenario you want to check. 'Does the login work with a correct password?' — that's a test case.","beginner","md","t",{},"\u002Fterms\u002Ft\u002Ftest-case",[309,310,311,312,313],"Test Suite","Assertion","AAA Pattern","Edge Case","Happy Path",{"title":5,"description":302},{"changefreq":316,"priority":317},"weekly",0.7,"terms\u002Ft\u002Ftest-case","sA4gj_lpbv5826Jq0echrBX47lXAv0bUxivMhj3a3mI",[321,325,328,331,334],{"title":311,"path":322,"acronym":323,"category":301,"difficulty":303,"description":324},"\u002Fterms\u002Fa\u002Faaa-pattern","AAA","AAA stands for Arrange, Act, Assert.",{"title":310,"path":326,"acronym":6,"category":301,"difficulty":303,"description":327},"\u002Fterms\u002Fa\u002Fassertion","An assertion is your test saying 'I DEMAND this is true!'. It's you checking that the result is what you expected.",{"title":312,"path":329,"acronym":6,"category":301,"difficulty":303,"description":330},"\u002Fterms\u002Fe\u002Fedge-case","Edge cases are the weird, extreme, or unexpected inputs that trip up your code. What if someone types 0 for age?",{"title":313,"path":332,"acronym":6,"category":301,"difficulty":303,"description":333},"\u002Fterms\u002Fh\u002Fhappy-path","The happy path is when everything goes perfectly — the user types the right thing, the API responds correctly, nothing breaks.",{"title":309,"path":335,"acronym":6,"category":301,"difficulty":303,"description":336},"\u002Fterms\u002Ft\u002Ftest-suite","A test suite is just a collection of related tests grouped together.",1776518318159]