??????1947??9??9???????????????Harvard Mark ???п??????????????????????????(?????????????Bug?????????????Smithsonian??????????????)??????????? Manrice Wilkes?????????????????????????????????????????????μ???????к???????????????????????д??????в????????????????????????????????????????????
???????????????????bug????????????????????????????????????????純????????????????ЩС?????????????????????????????????á???????????Σ???????????????д????????????????????????????????bug???????????????????????????????κ??????
????JUnit???????????????Java???????????????????????????????JUnit????????????????????????д???????Kent Beck??Erich Gamma??Beck??SmallTalk???????л??????в???????JUnit?????????????????????????????С??????д????е???????????е?????д????????????????????????????е?bug;???????????????????????????????е??????????????仯???仯????????д??????仯???????????????????????????????????Щ?仯?????????
????????????????????????XP(eXtreme Programming)?????????????????????????????????????????У???????????????????????????????????????????????????????????)???????????????????????????????????????????????????????????Щ????????????к?????????
???????JUnit???
?????????????У??????????д?????????????????????????????????????????????????????????????????????????????????????д???е?if????????????????????б?????JUnit?У?????????????Щif???????д????(assertion)???????????????????????????????????????????????????????б?????????????????????????????
???????????????????????????????????????????????????????????JUnit?У????????????????(setup)??setup??assertions????????????????????????????????????????????setup??????????????С?
?????????????????????????????????????????Щ?????????JUnit?У?????????????ж(TearDown)???????????????????????κε??????????????????????????????????????????setup??????????????С?setup??teardown???????????????????
?????????????????????????(Test Cases)??????????????????????????С??????????????????????????????????????????????????????????????????Щ??????????С??????????????У???????????????????(test suites)??????????£?????????????????????????????????(test suites)???????????????????????С?
???????????????
??????????????JUnit????????????????????????Complex??(??????????????????????)?????Complex???????????????????????????????????Щ???????в????
???????????????TestCase??????????????У??fixture????????(setup??teardown)?????????????????д setUp()(?????)??????????????????дtearDown()?????????????в???????????????????????κε?????á???????????У????е????????и??????????????????????дtearDown()??????Figure 1(a)????????δ??????TestCase??????дsetUp()??????????(a)
????import junit.framework.TestCase;
????import junit.framework.Test;
????import junit.framework.TestSuite;
????public class ComplexTest extends TestCase {
????private Complex a;
????private Complex b;
????protected void setUp() {
????a = new Complex(1?? -1);
????b = new Complex(2?? 5);