????????????????????????????棬????????????????????ó?????????????????????????????????ó???????????????????????????????1?????????
??????????????????????????????????????????????????????????????????У?????????????????????????????????????????????????????????????????????????????????
????????????????????
??????????????????????????????????????????????????????????????????????д????С??????????£????JUnit??TestNG????????????????????????????????д????????????С?
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Web???????????????????????????????????????????????????????
?????????????????????????????淶???б?????????????????????????????????????????????????????????????????????С?????????????淶??д?????????????????????б????????????????????????????????Selenium??QTP??
?????????????????????????????????????????????????????????????У????????Java?е????????????????
????1.?????????????????
????Java?????????????????????TestNG??JUnit?????е???????JUnit??TestNG???Щ????????
?????????????ú????С?
?????????????
????????????????鰱???????Щ?????
?????????????????????????????????????????????е???????
????????????????????Ant??Maven??Gradle?????????????????????С?
????EasyMock????????????????????????JUnit??TestNG?????EasyMock????????????????????????????????????????????????????????磬???????????????????????????????????????DAO????????????£?EasyMock???????????????????????MockDAO????????????????????????????????????????????????????
????2.??????ò?????????????
??????????????????TDD???????????????????????????У??????κα??????????????????????д????????????б?????????????????д??С?????????????????????????????????????
??????????д???????????????????????????д???????????????????????????TDD?????????????????????黯??????????????????忪?????????????????????????????????????TDD????????????
?????????TDD???????????е???????????????????У????????????????????????????????????????????????????????????TDD??????????????????????GUI??ó????????????????????ó??????????????????????????????????????
?????????????????TDD?????????????????????????????????????????????
????3.????????????
?????????????????????????????????е?????????е???????????????????????????δ???????????????????????????????????????б???С???????????????Щ????????????
????????????????????Clover??Corbetura??JaCoCo??Sonar????ù???????????????????????Щ??????????δ?????????????????????????????????????????????Щ????
?????????д???1??????????д?μ????????
??????????в??????????????????з??????if / else???
??????????????????????????????????С???
?????????concat????????????????????????????????true???????????????????
????public String concat(boolean append?? String a??String b) {
????        String result = null;
????        If (append) {
????            result = a + b;
????                            }
????        return result.toLowerCase();
????}
?????????????????????????????
??@Test
????public void testStringUtil() {
????     String result = stringUtil.concat(true?? "Hello "?? "World");
????     System.out.println("Result is "+result);
????}
??????????????£???в??????true???????????????????????????????????????????????????????????????concat?????е????д???????С???????????????е???false???????NullPointerException?????????????????????????????????????г????????????????????á?
????4.???????????????????
??????JUnit4????????????????е??????????????????????С?????????????????ò???????????в????????????????????????????JUnit4???TestNG?????????????????????????????????????в???????????????????????
?????????MathChecker???з???????????????????????????
??public class MathChecker {
????        public Boolean isOdd(int n) {
????            if (n%2 != 0) {
????                return true;
????            } else {
????                return false;
????            }
????        }
????    }
??????????MathChecker???TestNG??????????
????public class MathCheckerTest {
????        private MathChecker checker;
????        @BeforeMethod
????        public void beforeMethod() {
????          checker = new MathChecker();
????        }
????        @Test
????        @Parameters("num")
????        public void isOdd(int num) {
????          System.out.println("Running test for "+num);
????          Boolean result = checker.isOdd(num);
????          Assert.assertEquals(result?? new Boolean(true));
????        }
????    }
????TestNG
??????????testng.xml??????TestNG?????????????????????????в?????????
  <?xml version="1.0" encoding="UTF-8"?>
????    <suite name="ParameterExampleSuite" parallel="false">
????    <test name="MathCheckerTest">
????    <classes>
????      <parameter name="num" value="3"></parameter>
????      <class name="com.stormpath.demo.MathCheckerTest"/>
????    </classes>
????     </test>
????     <test name="MathCheckerTest1">
????    <classes>
????      <parameter name="num" value="7"></parameter>
????      <class name="com.stormpath.demo.MathCheckerTest"/>
????    </classes>
????     </test>
????    </suite>