{"id":1325,"date":"2015-10-20T15:07:51","date_gmt":"2015-10-20T08:07:51","guid":{"rendered":"https:\/\/kusumotolab.com\/?p=1325"},"modified":"2015-10-20T15:07:51","modified_gmt":"2015-10-20T08:07:51","slug":"%e0%b8%a1%e0%b8%b2%e0%b8%a3%e0%b8%b9%e0%b9%89%e0%b8%88%e0%b8%b1%e0%b8%81-dunit-%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%a1%e0%b8%b2%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-delphi-%e0%b9%82%e0%b8%94","status":"publish","type":"post","link":"https:\/\/oldblog.kusumotolab.com\/?p=1325","title":{"rendered":"\u0e21\u0e32\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01 DUnit \u0e41\u0e25\u0e30\u0e21\u0e32\u0e40\u0e02\u0e35\u0e22\u0e19 Delphi \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 TDD \u0e01\u0e31\u0e19"},"content":{"rendered":"<p>\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e40\u0e21\u0e2d\u0e23\u0e4c\u0e2b\u0e25\u0e32\u0e22\u0e46\u0e04\u0e19 \u0e04\u0e07\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 Automation Test \u0e01\u0e31\u0e19 \u0e0b\u0e36\u0e48\u0e07\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e01\u0e47\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e20\u0e32\u0e29\u0e32\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 \u0e40\u0e0a\u0e48\u0e19 JUnit (Java), NUnit (c#), phpUnit (PHP) \u0e04\u0e23\u0e32\u0e27\u0e19\u0e35\u0e49\u0e40\u0e23\u0e32\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 Unit Test \u0e1a\u0e19 Delphi \u0e01\u0e31\u0e19\u0e14\u0e49\u0e27\u0e22\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 DUnit<\/p>\n<p>DUnit \u0e40\u0e1b\u0e47\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21 (\u0e1f\u0e31\u0e07\u0e14\u0e39\u0e07\u0e07\u0e46\u0e40\u0e19\u0e2d\u0e30) \u0e43\u0e19\u0e20\u0e32\u0e29\u0e32 Delphi \u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e23\u0e30\u0e14\u0e31\u0e1a Unit<\/p>\n<p>\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 DUnit \u0e19\u0e31\u0e49\u0e19\u0e07\u0e48\u0e32\u0e22\u0e01\u0e27\u0e48\u0e32\u0e17\u0e35\u0e48\u0e04\u0e34\u0e14\u0e40\u0e22\u0e2d\u0e30\u0e04\u0e23\u0e31\u0e1a (\u0e15\u0e2d\u0e19\u0e25\u0e2d\u0e07\u0e04\u0e23\u0e31\u0e49\u0e07\u0e41\u0e23\u0e01\u0e19\u0e36\u0e01\u0e27\u0e48\u0e32\u0e22\u0e32\u0e01) \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e08\u0e30\u0e40\u0e2d\u0e32\u0e21\u0e32\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e0b\u0e2d\u0e1f\u0e41\u0e27\u0e23\u0e4c\u0e41\u0e1a\u0e1a Test-Driven Development (TDD) \u0e17\u0e35\u0e48\u0e01\u0e33\u0e25\u0e31\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e19\u0e34\u0e22\u0e21\u0e01\u0e31\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49 \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e08\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e17\u0e33\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Project \u0e07\u0e48\u0e32\u0e22\u0e46\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e08\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e40\u0e02\u0e35\u0e22\u0e19 Test Case \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e01\u0e48\u0e2d\u0e19 \u0e41\u0e25\u0e49\u0e27\u0e04\u0e48\u0e2d\u0e22\u0e46\u0e40\u0e02\u0e35\u0e22\u0e19 Code \u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e1b\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e22\u0e46 \u0e14\u0e39\u0e15\u0e32\u0e21\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e44\u0e1b\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e22\u0e46\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a<\/p>\n<p><strong>\u0e43\u0e19\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 \u0e1c\u0e21\u0e08\u0e30\u0e43\u0e0a\u0e49 Delphi XE4 \u0e43\u0e19\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a<\/strong><\/p>\n<h2>\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Test Project \u0e41\u0e25\u0e30 Test Case \u0e02\u0e2d\u0e07 DUnit<\/h2>\n<ol>\n<li>\u0e1c\u0e21\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07 Project \u0e40\u0e1b\u0e25\u0e48\u0e32\u0e46 \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 1 Project \u0e42\u0e14\u0e22 Project \u0e17\u0e35\u0e48\u0e1c\u0e21\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e19\u0e31\u0e49\u0e19 \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 VCL Forms Application<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-12.05.48-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1326\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-12.05.48-PM.png\" alt=\"Screen Shot 2558-10-20 at 12.05.48 PM\" width=\"1280\" height=\"762\" \/><\/a><\/li>\n<li>\u0e2a\u0e23\u0e49\u0e32\u0e07 Function \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 (\u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e1c\u0e21\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07 Function \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1a\u0e27\u0e01\u0e40\u0e25\u0e02 \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 Sum2Number) \u0e40\u0e1b\u0e47\u0e19 Function \u0e40\u0e1b\u0e25\u0e48\u0e32\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e1c\u0e48\u0e32\u0e19\u0e01\u0e32\u0e23 Implement \u0e43\u0e14\u0e46<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-2.29.19-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1336\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-2.29.19-PM.png\" alt=\"Screen Shot 2558-10-20 at 2.29.19 PM\" width=\"758\" height=\"522\" \/><\/a><\/li>\n<li>\u0e40\u0e23\u0e32\u0e08\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Project \u0e02\u0e2d\u0e07 DUnit \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e14\u0e2a\u0e2d\u0e1a Project \u0e01\u0e48\u0e2d\u0e19 \u0e42\u0e14\u0e22\u0e44\u0e1b\u0e17\u0e35\u0e48 File -&gt; New -&gt; Other -&gt; Unit Test -&gt; Test Project<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.24.36-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1328\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.24.36-PM.png\" alt=\"Screen Shot 2558-10-20 at 1.24.36 PM\" width=\"735\" height=\"547\" \/><\/a><\/li>\n<li>\u0e01\u0e23\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Unit Project \u0e42\u0e14\u0e22 Source Project \u0e04\u0e37\u0e2d Project \u0e15\u0e49\u0e19\u0e17\u0e32\u0e07\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e08\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e17\u0e14\u0e2a\u0e2d\u0e1a, Project Name \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e37\u0e48\u0e2d Project \u0e02\u0e2d\u0e07 Unit Test, Location \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e01\u0e47\u0e1a\u0e44\u0e1f\u0e25\u0e4c Unit Test \u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e2a\u0e23\u0e47\u0e08 \u0e01\u0e14 Next<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.26.18-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1329\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.26.18-PM.png\" alt=\"Screen Shot 2558-10-20 at 1.26.18 PM\" width=\"704\" height=\"468\" \/><\/a><\/li>\n<li>\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27 DUnit \u0e27\u0e48\u0e32\u0e08\u0e30\u0e43\u0e2b\u0e49\u0e17\u0e33\u0e07\u0e32\u0e19\u0e40\u0e1b\u0e47\u0e19 Console Mode \u0e2b\u0e23\u0e37\u0e2d GUI Mode \u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e08\u0e30\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e40\u0e1b\u0e47\u0e19 GUI Mode \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e07\u0e48\u0e32\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e41\u0e25\u0e49\u0e27\u0e01\u0e14 Finish<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.26.23-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1330\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.26.23-PM.png\" alt=\"Screen Shot 2558-10-20 at 1.26.23 PM\" width=\"682\" height=\"446\" \/><\/a><\/li>\n<li>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19 Delphi XE \u0e08\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 DUnit Project \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e41\u0e25\u0e30\u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e43\u0e19 Project Group \u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.31.56-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1331 aligncenter\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.31.56-PM.png\" alt=\"Screen Shot 2558-10-20 at 1.31.56 PM\" width=\"252\" height=\"236\" \/><\/a><\/li>\n<li>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49 Test Project \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Test Case \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23 Test \u0e01\u0e48\u0e2d\u0e19 \u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 TestCase \u0e19\u0e31\u0e49\u0e19 \u0e17\u0e33\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01 Project \u0e43\u0e19 Project Group \u0e40\u0e1b\u0e47\u0e19 Project \u0e02\u0e2d\u0e07 DUnit \u0e41\u0e25\u0e49\u0e27\u0e43\u0e0a\u0e49\u0e40\u0e21\u0e19\u0e39 File -&gt; New -&gt;\u00a0Other -&gt; Unit Test -&gt; Test Case <a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.36.45-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1333\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.36.45-PM.png\" alt=\"Screen Shot 2558-10-20 at 1.36.45 PM\" width=\"912\" height=\"540\" \/><\/a><\/li>\n<li>\u0e08\u0e30\u0e21\u0e35\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e43\u0e2b\u0e49\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c Source Code \u0e20\u0e32\u0e22\u0e43\u0e19 Project \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e43\u0e2b\u0e49\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c Source Code \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Unit Test \u0e41\u0e25\u0e49\u0e27\u0e08\u0e30\u0e21\u0e35\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d Function \u0e41\u0e25\u0e30 Procedule \u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c\u0e46\u0e19\u0e31\u0e49\u0e19\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01 Function \u0e2b\u0e23\u0e37\u0e2d Procedule \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e33 Unit Test \u0e41\u0e25\u0e49\u0e27\u0e01\u0e14 Next<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-2.30.34-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1337\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-2.30.34-PM.png\" alt=\"Screen Shot 2558-10-20 at 2.30.34 PM\" width=\"674\" height=\"454\" \/><\/a><\/li>\n<li>\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e44\u0e1f\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 Unit Test \u0e15\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01 (\u0e1c\u0e21\u0e02\u0e2d\u0e43\u0e0a\u0e49\u0e41\u0e1a\u0e1a Default \u0e44\u0e1b\u0e01\u0e48\u0e2d\u0e19\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e07\u0e48\u0e32\u0e22) \u0e41\u0e25\u0e49\u0e27\u0e01\u0e14 Finish<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.42.53-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1335\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-1.42.53-PM.png\" alt=\"Screen Shot 2558-10-20 at 1.42.53 PM\" width=\"648\" height=\"446\" \/><\/a><\/li>\n<li>\u0e15\u0e31\u0e27\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07 Default Code \u0e02\u0e2d\u0e07 DUnit \u0e40\u0e2d\u0e32\u0e44\u0e27\u0e49\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e40\u0e02\u0e35\u0e22\u0e19 Test \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b<\/li>\n<\/ol>\n<h2>\u0e17\u0e33 TDD \u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e29\u0e32 Delphi<\/h2>\n<p>\u0e40\u0e2d\u0e32\u0e2b\u0e25\u0e48\u0e30 \u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Project Test \u0e41\u0e25\u0e30 Test Case \u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27 DUnit \u0e01\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27 \u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49 \u0e40\u0e23\u0e32\u0e08\u0e30\u0e21\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e17\u0e33\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e0b\u0e2d\u0e1f\u0e41\u0e27\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22 TDD \u0e1a\u0e19\u0e20\u0e32\u0e29\u0e32 Delphi \u0e01\u0e31\u0e19 \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e08\u0e30\u0e15\u0e48\u0e2d\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e1a\u0e19\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27\u0e40\u0e25\u0e22\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e21\u0e35 Unit \u0e2d\u0e22\u0e39\u0e48 1 \u0e15\u0e31\u0e27 \u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 &#8220;Unit1.pas&#8221; \u0e41\u0e25\u0e30 Test Case \u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 &#8220;TestUnit1.pas&#8221; \u0e40\u0e2d\u0e32\u0e2b\u0e25\u0e48\u0e30 \u0e40\u0e23\u0e32\u0e25\u0e2d\u0e07\u0e21\u0e32\u0e17\u0e33 TDD \u0e01\u0e31\u0e19\u0e14\u0e39\u0e04\u0e23\u0e31\u0e1a<\/p>\n<ol>\n<ol>\n<li>\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e01\u0e32\u0e23\u0e23\u0e48\u0e32\u0e07 Test Case \u0e02\u0e2d\u0e07 Function \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e33\u0e02\u0e49\u0e19\u0e21\u0e32\u0e01\u0e48\u0e2d\u0e19 \u0e42\u0e14\u0e22 Test Case \u0e02\u0e2d\u0e07 Function \u0e02\u0e2d\u0e07\u0e1c\u0e21\u0e04\u0e37\u0e2d <strong>&#8220;\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32\u0e40\u0e25\u0e02 2 \u0e15\u0e31\u0e27 \u0e21\u0e32\u0e1a\u0e27\u0e01\u0e01\u0e31\u0e19 \u0e42\u0e14\u0e22\u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48\u0e23\u0e31\u0e1a\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32 \u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e01\u0e34\u0e19 200 \u0e41\u0e25\u0e30\u0e44\u0e21\u0e48\u0e19\u0e49\u0e2d\u0e22\u0e01\u0e27\u0e48\u0e32 0&#8221;<\/strong> \u00a0 \u0e23\u0e48\u0e32\u0e07\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e32\u0e23\u0e32\u0e07 Test Case \u0e44\u0e14\u0e49 \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<br \/>\n<table style=\"height: 544px;\" border=\"1\" width=\"659\">\n<thead>\n<tr>\n<th>\u0e25\u0e33\u0e14\u0e31\u0e1a<\/th>\n<th>\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48 1<\/th>\n<th>\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48 2<\/th>\n<th>\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>-1<\/td>\n<td>0<\/td>\n<td>Error : Out of Rage<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>199<\/td>\n<td>0<\/td>\n<td>199<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>200<\/td>\n<td>0<\/td>\n<td>200<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>201<\/td>\n<td>0<\/td>\n<td>Error : Out of Rage<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Test<\/td>\n<td>0<\/td>\n<td>Error : Invalid Input<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>0<\/td>\n<td>-1<\/td>\n<td>Error : Out of Rage<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>0<\/td>\n<td>199<\/td>\n<td>199<\/td>\n<\/tr>\n<tr>\n<td>11<\/td>\n<td>0<\/td>\n<td>200<\/td>\n<td>200<\/td>\n<\/tr>\n<tr>\n<td>12<\/td>\n<td>0<\/td>\n<td>201<\/td>\n<td>Error : Out of Rage<\/td>\n<\/tr>\n<tr>\n<td>13<\/td>\n<td>0<\/td>\n<td>Test<\/td>\n<td>Error : Invalid Input<\/td>\n<\/tr>\n<tr>\n<td>14<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>15<\/td>\n<td>199<\/td>\n<td>199<\/td>\n<td>398<\/td>\n<\/tr>\n<tr>\n<td>16<\/td>\n<td>200<\/td>\n<td>200<\/td>\n<td>400<\/td>\n<\/tr>\n<tr>\n<td>17<\/td>\n<td>201<\/td>\n<td>201<\/td>\n<td>Error : Out of Rage<\/td>\n<\/tr>\n<tr>\n<td>18<\/td>\n<td>-1<\/td>\n<td>-1<\/td>\n<td>Error : Out of Rage<\/td>\n<\/tr>\n<tr>\n<td>19<\/td>\n<td>Test<\/td>\n<td>Test<\/td>\n<td>Error : Invalid Input<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e15\u0e32\u0e23\u0e32\u0e07 Test Case \u0e41\u0e25\u0e49\u0e27 \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e19\u0e33\u0e15\u0e32\u0e23\u0e32\u0e07 Test Case \u0e44\u0e1b Implement \u0e01\u0e31\u0e1a DUnit \u0e44\u0e14\u0e49 \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<br \/>\n<script src=\"https:\/\/gist.github.com\/Kusumoto\/452f51fd548a148b5ba8.js\"><\/script><\/li>\n<li>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19 \u0e43\u0e2b\u0e49\u0e25\u0e2d\u0e07 Run Unit Test \u0e14\u0e39<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-3.01.39-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1342\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-3.01.39-PM.png\" alt=\"Screen Shot 2558-10-20 at 3.01.39 PM\" width=\"690\" height=\"629\" \/><\/a><\/li>\n<li>\u0e08\u0e30\u0e40\u0e2b\u0e47\u0e19\u0e27\u0e48\u0e32 \u0e44\u0e21\u0e48\u0e21\u0e35 Test Case \u0e17\u0e35\u0e48 Run \u0e1c\u0e48\u0e32\u0e19 \u0e40\u0e1e\u0e23\u0e32\u0e30\u0e21\u0e31\u0e19\u0e40\u0e1b\u0e47\u0e19 Function \u0e40\u0e1b\u0e25\u0e48\u0e32 \u0e17\u0e35\u0e19\u0e35\u0e49\u0e40\u0e23\u0e32\u0e01\u0e47 Implement Function \u0e43\u0e2b\u0e49 Run \u0e1c\u0e48\u0e32\u0e19\u0e17\u0e38\u0e01 Test Case<script src=\"https:\/\/gist.github.com\/Kusumoto\/fccc45912a5b1634245d.js\"><\/script><\/li>\n<li>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01 Implement Function \u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22\u0e41\u0e25\u0e49\u0e27 \u0e41\u0e25\u0e49\u0e27 Run Test \u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07 \u0e1c\u0e25\u0e04\u0e37\u0e2d&#8230;<a href=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-3.04.57-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1343\" src=\"https:\/\/kusumotolab.com\/wp-content\/uploads\/2015\/10\/Screen-Shot-2558-10-20-at-3.04.57-PM.png\" alt=\"Screen Shot 2558-10-20 at 3.04.57 PM\" width=\"684\" height=\"619\" \/><\/a><\/li>\n<li>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49 \u0e43\u0e04\u0e23\u0e2d\u0e22\u0e32\u0e01\u0e08\u0e30 Code refactoring \u0e01\u0e47\u0e41\u0e25\u0e49\u0e27\u0e41\u0e15\u0e48\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e04\u0e23\u0e31\u0e1a \u0e41\u0e15\u0e48 Test Case \u0e17\u0e38\u0e01\u0e15\u0e31\u0e27 \u0e15\u0e49\u0e2d\u0e07 Run \u0e1c\u0e48\u0e32\u0e19\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e40\u0e14\u0e34\u0e21<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e40\u0e21\u0e2d\u0e23\u0e4c\u0e2b\u0e25\u0e32\u0e22\u0e46\u0e04\u0e19 \u0e04\u0e07\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 Automation Test \u0e01\u0e31\u0e19 \u0e0b\u0e36\u0e48\u0e07\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e01\u0e47\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e20\u0e32\u0e29\u0e32\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 \u0e40\u0e0a\u0e48\u0e19 JUnit (Java), NUnit (c#), phpUnit (PHP) \u0e04\u0e23\u0e32\u0e27\u0e19\u0e35\u0e49\u0e40\u0e23\u0e32\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 Unit Test \u0e1a\u0e19 Delphi \u0e01\u0e31\u0e19\u0e14\u0e49\u0e27\u0e22\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 DUnit DUnit \u0e40\u0e1b\u0e47\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21 (\u0e1f\u0e31\u0e07\u0e14\u0e39\u0e07\u0e07\u0e46\u0e40\u0e19\u0e2d\u0e30) \u0e43\u0e19\u0e20\u0e32\u0e29\u0e32 Delphi \u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e23\u0e30\u0e14\u0e31\u0e1a Unit \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 DUnit \u0e19\u0e31\u0e49\u0e19\u0e07\u0e48\u0e32\u0e22\u0e01\u0e27\u0e48\u0e32\u0e17\u0e35\u0e48\u0e04\u0e34\u0e14\u0e40\u0e22\u0e2d\u0e30\u0e04\u0e23\u0e31\u0e1a (\u0e15\u0e2d\u0e19\u0e25\u0e2d\u0e07\u0e04\u0e23\u0e31\u0e49\u0e07\u0e41\u0e23\u0e01\u0e19\u0e36\u0e01\u0e27\u0e48\u0e32\u0e22\u0e32\u0e01) \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e08\u0e30\u0e40\u0e2d\u0e32\u0e21\u0e32\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e0b\u0e2d\u0e1f\u0e41\u0e27\u0e23\u0e4c\u0e41\u0e1a\u0e1a Test-Driven Development (TDD) \u0e17\u0e35\u0e48\u0e01\u0e33\u0e25\u0e31\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e19\u0e34\u0e22\u0e21\u0e01\u0e31\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49 \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e08\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e17\u0e33\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Project \u0e07\u0e48\u0e32\u0e22\u0e46\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e42\u0e14\u0e22\u0e1c\u0e21\u0e08\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e40\u0e02\u0e35\u0e22\u0e19 Test Case \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e01\u0e48\u0e2d\u0e19 \u0e41\u0e25\u0e49\u0e27\u0e04\u0e48\u0e2d\u0e22\u0e46\u0e40\u0e02\u0e35\u0e22\u0e19 Code \u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e1b\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e22\u0e46 \u0e14\u0e39\u0e15\u0e32\u0e21\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e44\u0e1b\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e22\u0e46\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e43\u0e19\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 \u0e1c\u0e21\u0e08\u0e30\u0e43\u0e0a\u0e49 Delphi XE4 \u0e43\u0e19\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Test Project [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":[]},"categories":[72,77,76],"tags":[],"class_list":["post-1325","post","type-post","status-publish","format-standard","hentry","category-delphi","category-tdd","category-test"],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3OMEb-ln","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=\/wp\/v2\/posts\/1325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1325"}],"version-history":[{"count":7,"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=\/wp\/v2\/posts\/1325\/revisions"}],"predecessor-version":[{"id":1346,"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=\/wp\/v2\/posts\/1325\/revisions\/1346"}],"wp:attachment":[{"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oldblog.kusumotolab.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}