{"id":6265,"date":"2026-04-26T11:00:52","date_gmt":"2026-04-26T07:30:52","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6265"},"modified":"2026-04-26T11:00:52","modified_gmt":"2026-04-26T07:30:52","slug":"%d9%86%d8%ad%d9%88%d9%87-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-unittest-%d8%a8%d8%b1%d8%a7%db%8c-%d9%86%d9%88%d8%b4%d8%aa%d9%86-%d8%aa%d8%b3%d8%aa-%db%8c%da%a9-%d8%aa%d8%a7%d8%a8","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-unittest-%d8%a8%d8%b1%d8%a7%db%8c-%d9%86%d9%88%d8%b4%d8%aa%d9%86-%d8%aa%d8%b3%d8%aa-%db%8c%da%a9-%d8%aa%d8%a7%d8%a8\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 unittest \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u062a\u0633\u062a \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646"},"content":{"rendered":"<h2 data-section-id=\"43f4r3\" data-start=\"65\" data-end=\"73\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n<p data-start=\"74\" data-end=\"237\">\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0627\u0645\u0644 \u0645\u0627\u0698\u0648\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">unittest<\/span><\/span> \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0628\u0631\u0627\u06cc \u06a9\u062f\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u062a\u0633\u062a \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"239\" data-end=\"336\">\u062a\u0633\u062a\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">unittest<\/span><\/span> \u0646\u0648\u0634\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f:<\/p>\n<ul data-start=\"337\" data-end=\"486\">\n<li data-section-id=\"k5gwdu\" data-start=\"337\" data-end=\"366\">\u0628\u0627\u06af\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f<\/li>\n<li data-section-id=\"1nc6wp\" data-start=\"367\" data-end=\"417\">\u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u062e\u0637\u0627\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0647\u0646\u06af\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f<\/li>\n<li data-section-id=\"pv7026\" data-start=\"418\" data-end=\"486\">\u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u062a\u0633\u062a (TDD) \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0647\u0631 \u0628\u062e\u0634 \u0627\u0632 \u06a9\u062f \u062a\u0633\u062a \u0645\u0646\u0627\u0633\u0628 \u062f\u0627\u0631\u062f<\/li>\n<\/ul>\n<p data-start=\"488\" data-end=\"576\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0627\u0698\u0648\u0644 <code data-start=\"540\" data-end=\"550\">unittest<\/code> \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u062a\u0633\u062a \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f.<\/p>\n<hr data-start=\"578\" data-end=\"581\" \/>\n<h2 data-section-id=\"1i1mrbk\" data-start=\"583\" data-end=\"596\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n<p data-start=\"597\" data-end=\"667\">\u0628\u0631\u0627\u06cc \u062f\u0631\u06a9 \u0628\u0647\u062a\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0628\u0627 \u062a\u0639\u0631\u06cc\u0641 \u062a\u0648\u0627\u0628\u0639 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0622\u0634\u0646\u0627 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<hr data-start=\"669\" data-end=\"672\" \/>\n<h1 data-section-id=\"2h6mdu\" data-start=\"674\" data-end=\"695\">\u062a\u0639\u0631\u06cc\u0641 \u06a9\u0644\u0627\u0633 TestCase<\/h1>\n<p data-start=\"696\" data-end=\"785\">\u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0645\u0627\u0698\u0648\u0644 <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">unittest<\/span><\/span> \u06a9\u0644\u0627\u0633 <code data-start=\"770\" data-end=\"780\">TestCase<\/code> \u0627\u0633\u062a.<\/p>\n<p data-start=\"787\" data-end=\"834\">\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0686\u0627\u0631\u0686\u0648\u0628 \u0627\u0635\u0644\u06cc \u062a\u0633\u062a\u200c\u0646\u0648\u06cc\u0633\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"836\" data-end=\"841\">\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">\n<p><span class=\"\u037c8\">import<\/span> <span class=\"\u037ce\">unittest<\/span><\/p>\n<p><span class=\"\u037c8\">def<\/span> <span class=\"\u037ce\">add_fish_to_aquarium<\/span>(<span class=\"\u037ce\">fish_list<\/span>):<br \/>\n<span class=\"\u037c8\">if<\/span> <span class=\"\u037ce\">len<\/span>(<span class=\"\u037ce\">fish_list<\/span>) <span class=\"\u037c8\">&gt;<\/span> <span class=\"\u037cb\">10<\/span>:<br \/>\n<span class=\"\u037c8\">raise<\/span> <span class=\"\u037ce\">ValueError<\/span>(<span class=\"\u037cc\">&#8220;A maximum of 10 fish can be added to the aquarium&#8221;<\/span>)<br \/>\n<span class=\"\u037c8\">return<\/span> {<span class=\"\u037cc\">&#8220;tank_a&#8221;<\/span>: <span class=\"\u037ce\">fish_list<\/span>}<\/p>\n<p><span class=\"\u037c8\">class<\/span> <span class=\"\u037cd\">TestAddFishToAquarium<\/span>(<span class=\"\u037ce\">unittest<\/span><span class=\"\u037c8\">.<\/span>TestCase):<br \/>\n<span class=\"\u037c8\">def<\/span> <span class=\"\u037ce\">test_add_fish_to_aquarium_success<\/span>(<span class=\"\u037ce\">self<\/span>):<br \/>\n<span class=\"\u037ce\">actual<\/span> <span class=\"\u037c8\">=<\/span> <span class=\"\u037ce\">add_fish_to_aquarium<\/span>(<span class=\"\u037ce\">fish_list<\/span><span class=\"\u037c8\">=<\/span>[<span class=\"\u037cc\">&#8220;shark&#8221;<\/span>, <span class=\"\u037cc\">&#8220;tuna&#8221;<\/span>])<br \/>\n<span class=\"\u037ce\">expected<\/span> <span class=\"\u037c8\">=<\/span> {<span class=\"\u037cc\">&#8220;tank_a&#8221;<\/span>: [<span class=\"\u037cc\">&#8220;shark&#8221;<\/span>, <span class=\"\u037cc\">&#8220;tuna&#8221;<\/span>]}<br \/>\n<span class=\"\u037ce\">self<\/span><span class=\"\u037c8\">.<\/span>assertEqual(<span class=\"\u037ce\">actual<\/span>, <span class=\"\u037ce\">expected<\/span>)<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3 data-section-id=\"1p92iax\" data-start=\"1309\" data-end=\"1319\">\u062a\u0648\u0636\u06cc\u062d:<\/h3>\n<ul data-start=\"1320\" data-end=\"1627\">\n<li data-section-id=\"1jkv37x\" data-start=\"1320\" data-end=\"1358\">\u0627\u0628\u062a\u062f\u0627 <code data-start=\"1328\" data-end=\"1338\">unittest<\/code> \u0631\u0627 \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/li>\n<li data-section-id=\"roc191\" data-start=\"1359\" data-end=\"1402\">\u062a\u0627\u0628\u0639 <code data-start=\"1366\" data-end=\"1388\">add_fish_to_aquarium<\/code> \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li data-section-id=\"w4p9rt\" data-start=\"1403\" data-end=\"1451\">\u0627\u06af\u0631 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0647\u06cc\u200c\u0647\u0627 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 10 \u0628\u0627\u0634\u062f \u062e\u0637\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<li data-section-id=\"oei6ra\" data-start=\"1452\" data-end=\"1525\">\u0633\u067e\u0633 \u06a9\u0644\u0627\u0633 <code data-start=\"1463\" data-end=\"1486\">TestAddFishToAquarium<\/code> \u0627\u0632 <code data-start=\"1490\" data-end=\"1509\">unittest.TestCase<\/code> \u0627\u0631\u062b\u200c\u0628\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"xlcw6e\" data-start=\"1526\" data-end=\"1627\">\u0645\u062a\u062f <code data-start=\"1532\" data-end=\"1567\">test_add_fish_to_aquarium_success<\/code> \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u062a\u0627\u0628\u0639 \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631 \u0628\u0631\u0627\u0628\u0631 \u0628\u0627\u0634\u062f.<\/li>\n<\/ul>\n<hr data-start=\"1629\" data-end=\"1632\" \/>\n<h1 data-section-id=\"fcisro\" data-start=\"1634\" data-end=\"1645\">\u0627\u062c\u0631\u0627\u06cc \u062a\u0633\u062a<\/h1>\n<p data-start=\"1646\" data-end=\"1661\">\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062a\u0633\u062a:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">python <span class=\"\u037cf\">-m<\/span> unittest test_add_fish_to_aquarium.py<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1724\" data-end=\"1730\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">.<br \/>\n<span class=\"\u037cf\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/span><br \/>\nRan <span class=\"\u037cb\">1<\/span> test <span class=\"\u037c8\">in<\/span> <span class=\"\u037cb\">0<\/span>.000sOK<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1843\" data-end=\"1885\">\u0639\u0644\u0627\u0645\u062a <code data-start=\"1849\" data-end=\"1852\">.<\/code> \u06cc\u0639\u0646\u06cc \u062a\u0633\u062a \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"1887\" data-end=\"1890\" \/>\n<h2 data-section-id=\"alypwb\" data-start=\"1892\" data-end=\"1913\">\u0627\u06af\u0631 \u062a\u0633\u062a \u0634\u06a9\u0633\u062a \u0628\u062e\u0648\u0631\u062f<\/h2>\n<p data-start=\"1914\" data-end=\"1962\">\u0645\u062b\u0644\u0627\u064b \u0627\u06af\u0631 \u0645\u0642\u062f\u0627\u0631 \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631 \u0631\u0627 \u0627\u0634\u062a\u0628\u0627\u0647 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u0645:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037ce\">expected<\/span> <span class=\"\u037c8\">=<\/span> {<span class=\"\u037cc\">&#8220;tank_a&#8221;<\/span>: [<span class=\"\u037cc\">&#8220;rabbit&#8221;<\/span>]}<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2013\" data-end=\"2019\">\u062e\u0631\u0648\u062c\u06cc:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">F<br \/>\n&#8230;<br \/>\nFAILED <span class=\"\u037ce\">(failures<\/span><span class=\"\u037c8\">=<\/span><span class=\"\u037cb\">1<\/span>)<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2060\" data-end=\"2092\">\u062d\u0631\u0641 <code data-start=\"2064\" data-end=\"2067\">F<\/code> \u06cc\u0639\u0646\u06cc \u062a\u0633\u062a \u0634\u06a9\u0633\u062a \u062e\u0648\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"2094\" data-end=\"2097\" \/>\n<h1 data-section-id=\"18rk37\" data-start=\"2099\" data-end=\"2119\">\u062a\u0633\u062a \u06a9\u0631\u062f\u0646 Exception<\/h1>\n<p data-start=\"2120\" data-end=\"2168\">\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f \u06a9\u0647 \u062a\u0627\u0628\u0639 \u062f\u0631 \u0634\u0631\u0627\u06cc\u0637 \u062e\u0627\u0635 \u062e\u0637\u0627 \u0628\u062f\u0647\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037c8\">def<\/span> <span class=\"\u037ce\">test_add_fish_to_aquarium_exception<\/span>(<span class=\"\u037ce\">self<\/span>):<br \/>\n<span class=\"\u037ce\">too_many_fish<\/span> <span class=\"\u037c8\">=<\/span> [<span class=\"\u037cc\">&#8220;shark&#8221;<\/span>] <span class=\"\u037c8\">*<\/span> <span class=\"\u037cb\">25<\/span><br \/>\n<span class=\"\u037c8\">with<\/span> <span class=\"\u037ce\">self<\/span><span class=\"\u037c8\">.<\/span>assertRaises(<span class=\"\u037ce\">ValueError<\/span>) <span class=\"\u037c8\">as<\/span> <span class=\"\u037ce\">exception_context<\/span>:<br \/>\n<span class=\"\u037ce\">add_fish_to_aquarium<\/span>(<span class=\"\u037ce\">fish_list<\/span><span class=\"\u037c8\">=<\/span><span class=\"\u037ce\">too_many_fish<\/span>)<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2382\" data-end=\"2455\">\u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u0627\u06af\u0631 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0647\u06cc\u200c\u0647\u0627 \u0632\u06cc\u0627\u062f \u0628\u0627\u0634\u062f\u060c \u062e\u0637\u0627\u06cc <code data-start=\"2435\" data-end=\"2447\">ValueError<\/code> \u0631\u062e \u062f\u0647\u062f.<\/p>\n<hr data-start=\"2457\" data-end=\"2460\" \/>\n<h1 data-section-id=\"gc0cq7\" data-start=\"2462\" data-end=\"2481\">\u0645\u062a\u062f\u0647\u0627\u06cc \u0645\u0647\u0645 assert<\/h1>\n<p data-start=\"2482\" data-end=\"2499\">\u0686\u0646\u062f \u0645\u062a\u062f \u067e\u0631\u06a9\u0627\u0631\u0628\u0631\u062f:<\/p>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex flex-col-reverse w-fit\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"2501\" data-end=\"2705\">\n<thead data-start=\"2501\" data-end=\"2516\">\n<tr data-start=\"2501\" data-end=\"2516\">\n<th class=\"\" data-start=\"2501\" data-end=\"2507\" data-col-size=\"sm\">\u0645\u062a\u062f<\/th>\n<th class=\"\" data-start=\"2507\" data-end=\"2516\" data-col-size=\"sm\">\u0628\u0631\u0631\u0633\u06cc<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"2530\" data-end=\"2705\">\n<tr data-start=\"2530\" data-end=\"2565\">\n<td data-start=\"2530\" data-end=\"2551\" data-col-size=\"sm\"><code data-start=\"2532\" data-end=\"2550\">assertEqual(a,b)<\/code><\/td>\n<td data-col-size=\"sm\" data-start=\"2551\" data-end=\"2565\">\u0628\u0631\u0627\u0628\u0631 \u0628\u0648\u062f\u0646<\/td>\n<\/tr>\n<tr data-start=\"2566\" data-end=\"2606\">\n<td data-start=\"2566\" data-end=\"2590\" data-col-size=\"sm\"><code data-start=\"2568\" data-end=\"2589\">assertNotEqual(a,b)<\/code><\/td>\n<td data-col-size=\"sm\" data-start=\"2590\" data-end=\"2606\">\u0646\u0627\u0628\u0631\u0627\u0628\u0631 \u0628\u0648\u062f\u0646<\/td>\n<\/tr>\n<tr data-start=\"2607\" data-end=\"2638\">\n<td data-start=\"2607\" data-end=\"2625\" data-col-size=\"sm\"><code data-start=\"2609\" data-end=\"2624\">assertTrue(a)<\/code><\/td>\n<td data-col-size=\"sm\" data-start=\"2625\" data-end=\"2638\">True \u0628\u0648\u062f\u0646<\/td>\n<\/tr>\n<tr data-start=\"2639\" data-end=\"2672\">\n<td data-start=\"2639\" data-end=\"2658\" data-col-size=\"sm\"><code data-start=\"2641\" data-end=\"2657\">assertFalse(a)<\/code><\/td>\n<td data-col-size=\"sm\" data-start=\"2658\" data-end=\"2672\">False \u0628\u0648\u062f\u0646<\/td>\n<\/tr>\n<tr data-start=\"2673\" data-end=\"2705\">\n<td data-start=\"2673\" data-end=\"2691\" data-col-size=\"sm\"><code data-start=\"2675\" data-end=\"2690\">assertIn(a,b)<\/code><\/td>\n<td data-start=\"2691\" data-end=\"2705\" data-col-size=\"sm\">\u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0646<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<hr data-start=\"2707\" data-end=\"2710\" \/>\n<h1 data-section-id=\"1uq838k\" data-start=\"2712\" data-end=\"2732\"><span role=\"text\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code data-start=\"2725\" data-end=\"2732\">setUp<\/code><\/span><\/h1>\n<p data-start=\"2733\" data-end=\"2771\">\u0645\u062a\u062f <code data-start=\"2737\" data-end=\"2744\">setUp<\/code> \u0642\u0628\u0644 \u0627\u0632 \u0647\u0631 \u062a\u0633\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"2773\" data-end=\"2778\">\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037c8\">class<\/span> <span class=\"\u037cd\">TestFishTank<\/span>(<span class=\"\u037ce\">unittest<\/span><span class=\"\u037c8\">.<\/span>TestCase):<br \/>\n<span class=\"\u037c8\">def<\/span> <span class=\"\u037ce\">setUp<\/span>(<span class=\"\u037ce\">self<\/span>):<br \/>\n<span class=\"\u037ce\">self<\/span><span class=\"\u037c8\">.<\/span>fish_tank <span class=\"\u037c8\">=<\/span> <span class=\"\u037ce\">FishTank<\/span>()<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2891\" data-end=\"2896\">\u0645\u0632\u06cc\u062a:<\/p>\n<ul data-start=\"2897\" data-end=\"2963\">\n<li data-section-id=\"1k64m2i\" data-start=\"2897\" data-end=\"2935\">\u06a9\u062f\u0647\u0627\u06cc \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0627 \u06cc\u06a9\u200c\u0628\u0627\u0631 \u0645\u06cc\u200c\u0646\u0648\u06cc\u0633\u06cc\u062f<\/li>\n<li data-section-id=\"1o69n3x\" data-start=\"2936\" data-end=\"2963\">\u0642\u0628\u0644 \u0627\u0632 \u0647\u0631 \u062a\u0633\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f<\/li>\n<\/ul>\n<hr data-start=\"2965\" data-end=\"2968\" \/>\n<h1 data-section-id=\"w8i2c3\" data-start=\"2970\" data-end=\"2993\"><span role=\"text\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code data-start=\"2983\" data-end=\"2993\">tearDown<\/code><\/span><\/h1>\n<p data-start=\"2994\" data-end=\"3071\">\u0645\u062a\u062f <code data-start=\"2998\" data-end=\"3008\">tearDown<\/code> \u0628\u0639\u062f \u0627\u0632 \u0647\u0631 \u062a\u0633\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0628\u0631\u0627\u06cc \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0628\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"3073\" data-end=\"3078\">\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037c8\">def<\/span> <span class=\"\u037ce\">tearDown<\/span>(<span class=\"\u037ce\">self<\/span>):<br \/>\n<span class=\"\u037ce\">self<\/span><span class=\"\u037c8\">.<\/span>fish_tank<span class=\"\u037c8\">.<\/span>empty_tank()<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"3147\" data-end=\"3158\">\u0645\u062b\u0644\u0627\u064b \u0628\u0631\u0627\u06cc:<\/p>\n<ul data-start=\"3159\" data-end=\"3214\">\n<li data-section-id=\"s9jlrz\" data-start=\"3159\" data-end=\"3174\">\u062d\u0630\u0641 \u0641\u0627\u06cc\u0644 \u0645\u0648\u0642\u062a<\/li>\n<li data-section-id=\"1gp0m2l\" data-start=\"3175\" data-end=\"3195\">\u0628\u0633\u062a\u0646 \u0627\u062a\u0635\u0627\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633<\/li>\n<li data-section-id=\"w0roch\" data-start=\"3196\" data-end=\"3214\">\u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u062f\u0627\u062f\u0647 \u062a\u0633\u062a<\/li>\n<\/ul>\n<hr data-start=\"3216\" data-end=\"3219\" \/>\n<h1 data-section-id=\"qpvq47\" data-start=\"3221\" data-end=\"3231\">\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h1>\n<p data-start=\"3232\" data-end=\"3256\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u06cc\u062f:<\/p>\n<ul data-start=\"3258\" data-end=\"3426\">\n<li data-section-id=\"1txohq8\" data-start=\"3258\" data-end=\"3323\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">unittest<\/span><\/span> \u0628\u0631\u0627\u06cc \u062a\u0633\u062a\u200c\u0646\u0648\u06cc\u0633\u06cc<\/li>\n<li data-section-id=\"tm6318\" data-start=\"3324\" data-end=\"3347\">\u062a\u0639\u0631\u06cc\u0641 \u06a9\u0644\u0627\u0633 <code data-start=\"3337\" data-end=\"3347\">TestCase<\/code><\/li>\n<li data-section-id=\"oo06jq\" data-start=\"3348\" data-end=\"3362\">\u0627\u062c\u0631\u0627\u06cc \u062a\u0633\u062a\u200c\u0647\u0627<\/li>\n<li data-section-id=\"19jdijw\" data-start=\"3363\" data-end=\"3381\">\u062a\u0633\u062a Exception \u0647\u0627<\/li>\n<li data-section-id=\"gfx2ga\" data-start=\"3382\" data-end=\"3402\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code data-start=\"3395\" data-end=\"3402\">setUp<\/code><\/li>\n<li data-section-id=\"1r3pihp\" data-start=\"3403\" data-end=\"3426\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code data-start=\"3416\" data-end=\"3426\">tearDown<\/code><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u0627\u0632 \u0647\u0645\u0631\u0627\u0647\u06cc \u0634\u0645\u0627 \u0628\u0627 <strong><a href=\"https:\/\/parmin.cloud\/\">\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/a><\/strong> \u0645\u062a\u0634\u06a9\u0631\u06cc\u0645.<\/p>\n<div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0627\u0645\u0644 \u0645\u0627\u0698\u0648\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 unittest \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0628\u0631\u0627\u06cc \u06a9\u062f\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u062a\u0633\u062a \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u062a\u0633\u062a\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 unittest \u0646\u0648\u0634\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f: \u0628\u0627\u06af\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u062e\u0637\u0627\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0647\u0646\u06af\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0645\u0628\u062a\u0646\u06cc [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":6267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[8,343],"tags":[971,973,972,969,970],"class_list":["post-6265","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-8","category-python","tag-unit-testing-","tag-unittest","tag---python","tag--testcase"],"aioseo_notices":[],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=6265"}],"version-history":[{"count":3,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6265\/revisions"}],"predecessor-version":[{"id":6269,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6265\/revisions\/6269"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6267"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}