銆涓銆佺畝浠? 銆銆JUnit鏄竴涓紑婧愮殑java鍗曞厓嫻嬭瘯妗嗘灦銆傚湪1997騫達紝鐢?Erich Gamma 鍜?Kent Beck 寮鍙戝畬鎴愩傝繖涓や釜鐗涗漢涓?Erich Gamma 鏄?GOF 涔嬩竴錛汯ent Beck 鍒欏湪 XP 涓湁閲嶈鐨勮礎(chǔ)鐚紙浣犺寰楃溂鐔熶竴鐐歸兘涓嶅鎬級銆? 銆銆姝e甯歌█閬擄細鈥滈夯闆铏藉皬錛屼簲鑴忎勘鍏ㄣ傗?JUnit璁捐鐨勯潪甯稿皬宸э紝浣嗘槸鍔熻兘鍗撮潪甯稿己澶с? 銆銆涓嬮潰鏄疛Unit涓浜涚壒鎬х殑鎬葷粨錛? 銆銆1) 鎻愪緵鐨凙PI鍙互璁╀綘鍐欏嚭嫻嬭瘯緇撴灉鏄庣‘鐨勫彲閲嶇敤鍗曞厓嫻嬭瘯鐢ㄤ緥 銆銆2) 鎻愪緵浜嗕笁縐嶆柟寮忔潵鏄劇ず浣犵殑嫻嬭瘯緇撴灉錛岃屼笖榪樺彲浠ユ墿灞? 銆銆3) 鎻愪緵浜嗗崟鍏冩祴璇曠敤渚嬫垚鎵硅繍琛岀殑鍔熻兘 銆銆4) 瓚呰交閲忕駭鑰屼笖浣跨敤綆鍗曪紝娌℃湁鍟嗕笟鎬х殑嬈洪獥鍜屾棤鐢ㄧ殑鍚戝 銆銆5) 鏁翠釜妗嗘灦璁捐鑹ソ錛屾槗鎵╁睍 銆銆瀵逛笉鍚屾ц川鐨勮嫻嬪璞★紝濡侰lass錛孞sp錛孲ervlet錛孍jb絳夛紝Junit鏈変笉鍚岀殑浣跨敤鎶宸с傜敱浜庢湰鏂囩殑鎬ц川錛屼互涓嬩粎浠lass嫻嬭瘯涓轟緥銆? 銆銆浜屻?a class="blue" target="_blank">涓嬭澆 銆銆鐐瑰嚮http://www.junit.org鍙互涓嬭澆鍒版渶鏂扮増鏈殑JUnit錛屾湰鏂囦嬌鐢ㄧ殑涓?.8.1鐗堛傝嚦浜庡畨瑁呮垨鑰呴厤緗箣綾伙紝浣犲彧闇瑕佽交鏉劇殑灝嗕笅杞戒笅鏉ョ殑鍘嬬緝鍖呬腑鐨刯ar鏂囦歡錛屾斁鍒頒綘宸ョ▼鐨刢lasspath涓氨鍙互浜嗐? 銆銆榪欐牱錛屼綘鐨勭郴緇熶腑灝卞彲浠ヤ嬌鐢↗Unit緙栧啓鍗曞厓嫻嬭瘯浠g爜浜嗭紙鏄笉鏄緢綆鍗曪級錛? 銆銆涓夈丠elloWorld 銆銆璁板緱鍦ㄥ嚑涔庢瘡鏈璦鏁欏涔︿笂閮借兘鎵懼埌HelloWorld榪欎釜鍏ラ棬浠g爜銆備粖澶╁湪榪欓噷錛屾垜浠篃浠庝竴涓畝鍗曞埌鏍規(guī)湰涓嶇敤鍗曞厓嫻嬭瘯鐨勪緥瀛愬叆鎵嬨傝繖鏄竴涓彧浼氬仛涓ゆ暟鍔犲噺鐨勮秴綰х畝鍗曠殑璁$畻鍣紙灝忓涓騫寸駭蹇呭鏋佸搧錛夈備唬鐮佸涓嬶細 銆銆public class SampleCalculator 銆銆{ 銆銆 public int add(int augend , int addend) 銆銆 { 銆銆 return augend + addend ; 銆銆 } 銆銆 public int subtration(int minuend , int subtrahend) 銆銆 { 銆銆 return minuend - subtrahend ; 銆銆 } 銆銆} 銆銆灝嗕笂闈㈢殑浠g爜緙栬瘧閫氳繃銆備笅闈㈠氨鏄垜涓轟笂闈㈢▼搴忓啓鐨勪竴涓崟鍏冩祴璇曠敤渚嬶細 銆銆//璇鋒敞鎰忚繖涓▼搴忛噷闈㈢被鍚嶅拰鏂規(guī)硶鍚嶇殑鐗瑰緛 銆銆import junit.framework.TestCase; 銆銆public class TestSample extends TestCase 銆銆{ 銆銆 public void testAdd() 銆銆 { 銆銆SampleCalculator calculator = new SampleCalculator(); 銆銆 int result = calculator.add(50 , 20); 銆銆 assertEquals(70 , result); 銆銆 } 銆銆 public void testSubtration() 銆銆 { 銆銆 SampleCalculator calculator = new SampleCalculator(); 銆銆 int result = calculator.subtration(50 , 20); 銆銆 assertEquals(30 , result); 銆銆 } 銆銆} 銆銆濂戒簡錛屽湪DOS鍛戒護琛岄噷闈㈣緭鍏avac TestSample.java 灝嗘祴璇曠被緙栬瘧閫氳繃銆傜劧鍚庡啀杈撳叆 java junit.swingui.TestRunner TestSample 榪愯嫻嬭瘯綾伙紝浣犱細鐪嬪埌濡備笅鐨勭獥鍙c? 銆銆緇胯壊璇存槑鍗曞厓嫻嬭瘯閫氳繃錛屾病鏈夐敊璇駭鐢燂紱濡傛灉鏄孩鑹茬殑錛屽垯灝辨槸璇存祴璇曞け璐ヤ簡銆傝繖鏍蜂竴涓畝鍗曠殑鍗曞厓嫻嬭瘯灝卞畬鎴愪簡. 銆銆鎸夌収妗嗘灦瑙勫畾錛氱紪鍐欑殑鎵鏈夋祴璇曠被錛屽繀欏葷戶鎵胯嚜junit.framework.TestCase綾伙紱閲岄潰鐨勬祴璇曟柟娉曪紝鍛藉悕搴旇浠est寮澶達紝蹇呴』鏄痯ublic void 鑰屼笖涓嶈兘鏈夊弬鏁幫紱鑰屼笖涓轟簡嫻嬭瘯鏌ラ敊鏂逛究錛屽敖閲忎竴涓猅estXXX鏂規(guī)硶瀵逛竴涓姛鑳藉崟涓鐨勬柟娉曡繘琛屾祴璇曪紱浣跨敤assertEquals絳塲unit.framework.TestCase涓殑鏂█鏂規(guī)硶鏉ュ垽鏂祴璇曠粨鏋滄紜笌鍚︺? 銆銆浣犲彲浠ュ姣旂潃涓婇潰嫻嬭瘯綾諱腑鐨勫疄鐜版潵浣撲細涓嬭瀹氣斺斿緢綆鍗曪紒鑰屼笖浣犲湪榪欎釜嫻嬭瘯綾諱腑鏈夊姞鍏ュ灝戜釜嫻嬭瘯鏂規(guī)硶錛屽氨浼氳繍琛屽灝戜釜嫻嬭瘯鏂規(guī)硶銆? 銆銆鍥涖佸悜鍓嶄竴姝? 銆銆瀛﹀畬浜咹elloWorld錛屼綘宸茬粡鍙互緙栧啓鏍囧噯鐨勫崟鍏冩祴璇曠敤渚嬩簡銆備絾鏄繕鏈変竴浜涚粏鑺傦紝榪欓噷榪樿璇存槑涓涓嬨備笉瑕佹ワ紝寰堝揩鐨勶紒 銆銆鍙﹀浣犳槸鍚︽敞鎰忓埌錛屼笂闈㈠脊鍑虹獥鍙g殑涓涓粏鑺傦紝鍦ㄧ豢鏉′笅闈㈡湁Errors銆丗ailures緇熻銆傝繖涓よ呮湁浣曞尯鍒憿錛? 銆銆Failures浣滀負鍗曞厓嫻嬭瘯鎵鏈熸湜鍙戠敓鐨勯敊璇紝瀹冮紺轟綘鐨勪唬鐮佹湁bug錛屼笉榪囦篃鍙兘鏄綘鐨勫崟鍏冩祴璇曚唬鐮佹湁閫昏緫閿欒錛堟敞鎰忔槸閫昏緫閿欒錛夈侲rrors涓嶆槸浣犳墍鏈熷緟鐨勶紝鍙戠敓浜咵rror浣犲彲浠ユ寜鐓т笅闈㈢殑欏哄簭鏉ユ鏌ワ細 銆銆媯鏌ユ祴璇曟墍闇鐨勭幆澧冿紝濡傦細鏁版嵁搴撹繛鎺? 銆銆媯鏌ュ崟鍏冩祴璇曚唬鐮? 銆銆媯鏌ヤ綘鐨勭郴緇熶唬鐮? 銆銆浜斻佹垚鎵硅繍琛宼est case 銆銆榪欐槸鍓嶉潰鎻愬埌鐨凧Unit鐗規(guī)т箣涓銆傚畠鏂逛究浜庣郴緇熷崟鍏冩祴璇曠殑鎴愭壒榪愯銆備嬌鐢ㄨ搗鏉ヤ篃鏄潪甯哥畝鍗曪紝鍏堢湅涓嬩嬌鐢ㄤ唬鐮侊細 銆銆import junit.framework.Test; 銆銆import junit.framework.TestSuite; 銆銆public class TestAll{ 銆銆 public static Test suite(){ 銆銆 TestSuite suite = new TestSuite("TestSuite Test"); 銆銆 suite.addTestSuite( TestSample.class); 銆銆 return suite; 銆銆 } 銆銆} 銆銆榪欎釜嫻嬭瘯紼嬪簭鐨勭紪璇戙佽繍琛岋紝鍜屼笂闈estSample鐨勬柟寮忔槸涓鏍風(fēng)殑銆? 銆銆javac TestAll.java 銆銆java junit.swingui.TestRunner TestAll 銆銆鎬庝箞鏍鳳紵榪欐牱浣犲湪suite鏂規(guī)硶閲岄潰娣誨姞鍑犱釜TestCase灝變細榪愯鍑犱釜錛岃屼笖瀹冧篃鍙互娣誨姞TestSuite鏉ュ皢灝忎竴鐐圭殑闆嗗悎鍔犲叆澶х殑闆嗗悎涓潵錛屾柟渚夸簡瀵逛簬涓嶆柇澧炲姞鐨凾estCase鐨勭鐞嗗拰緇存姢銆? 銆銆浣犺寰梥uite鏂規(guī)硶鐨勪綔鐢ㄦ槸涓嶆槸浜巎ava搴旂敤紼嬪簭鐨刴ain寰堢被浼鹼紵騫朵笖榪欓噷鐨剆uite蹇呴』涓ユ牸閬靛畧涓婇潰鐨勫啓娉曪紒 |