| ???() ?CSND.NET ?samlet [2003/12/01] hJunit?l'????? l???'Junit???j??? ??? ?????k????????±??i??????K???ôj??h??????h??????????L??????á??hh??h????h???hµ? Junit??????h?????Junit???? 1. hTestCase?? 2. ??runTest() 3. ?h???assert()hboolean???òtrue???g ???currency?Money?K? Public void testSimpleAdd() { Money m12CHF = new Money(12, CHF); Money m14CHF = new Money(14, CHF); Money expected = new Money(26, CHF); Money result = m12CHF.add(m14CHF); Assert(expected.equals(result)); } ???l'Fixture????hSuite Fixture ??K???ô? ????h??l???Fixture????????fixture?? ???hfixture????ÿh????fixture??õ??? ???õfixture 1. hTestCase? 2. fixtureÿhh? 3. setUp()' 4. tearDown()?setUp()??? ????õ12Swiss Frances,14Swiss Frances28US Dollarsô?hfixture Public class MoneyTest extends TestCase { Private Money f12CHF; Private Money f14CHF; Private Money f28USD; Protected void setUp() { F12CHF = new Money(12, CHF); F14CHF = new Money(14, CHF); F28USD = new Money(28, USD); } } hFixture???? Test Case fixturea??h?? ûfixture?h???TestCaserunTest?? Junit?h?k??hfixture???g 1. fixture?k???public?g???reflectioná 2. hTestCase????? ??hMoney??hMoneyBag??? public void testMoneyMoneyBag() { Money bag[] = {f26CHF, f28USD}; MoneyBag expected = new MoneyBag(bag); AssertEquals(expected, f12CHF.add(f28USD.add(f14CHF))); } hMoneyTest???? new MoneyTest(testMoneyMoneyBag); ??????????k ?????hSuite Suite h??? ???????Junit?h??TestSuite??h?? ??h?? TestResult result = (new MoneyTest(testMoneyMoneyBag)).run(); ?suite??? TestSuite suite = new TestSuite(); Suite.addTest(new MoneyTest(testMoneyEquals)); Suite.addTest(new MoneyTest(testSimpleAdd)); TestResult result = suite.run(); h?JunithTestCase?hsuite??TestCase??TestSuiteL? TestSuite suite = new TestSuite(MoneyTest.class); TestResult result = suite.run(); ???????'?k?'?suite?k?hµ??suiteJ? TestSuite?TestCase?????Test??K?????J?hTestSuite??h??hTestSuite??h?? TestSuite suite = new TestSuite(); Suite.addTest(Kent.suite()); Suite.addTest(Erich.suite()); TestResult result = suite.run(); TestRunner ??? hTestSuite??Junit?suite?L??suiteTestRunner????gh?ksuite()?hTestSuite ?'hMoneyTest suiteTestRunner????g?MoneyTest?J? public static Test suite() { TestSuite suite = new TestSuite(); Suite.addTest(new MoneyTest(testMoneyEquals)); Suite.addTest(new MoneyTest(testSimpleAdd)); Return suite } hTestCaseû?hsuite()ôTestRunner?hsuitesuite?gtest?k Junit???hi?TestRunner?????java junit.swtui.TestRunnerjunit.swingui.TestRunner?û?h? suite?? h?t??? h???L ???? û??????????Junitfailutueerror??Failure????assertiongError???lArrayIndexOutOfBounds???h????  ??failureerror?Showt??hfailure??  Junit?hL??java junit.textui.TestRunnerz?suite()???ik???hmain()?batch?? ?MoneyTest?batch TestRunner? public static void main(String args[]) { junit.textui.TestRunner.run(suite()); } main()?????java MoneyTest?? ?'?RunnerTestiTestRunner??junit.jar?w??CLASSPATH? 
|