??????????????????????????????????????????????????????????????????????????????????????????????????з??????????????????з???????е?????????????????????????????????????Ρ?????????????????????????????Щ???顣

????????????????

????????????????????????????????????????????????????????????????????Σ???????????????????????????? TDD ?У????????????????????????????????У?????????????????????????????????????????????С?

??????????????

???????????????????????????????????????????????????????????????????????в??????????????????????????????????????????????????????ü?鷽???????????????????????????????????????????????緢????????????д??????????????????????????????

?????????????Χ

???????????в??????е???????????????????????????????????????????????????????????Щ??????????????????Щ?????????????????????????????????????????????????????е?????????????????????С??????????????????????????????С?????磬?????? DAL (Data Access Layer) ?????? Hibernate?????????????Щ????????????????????????Щ?????????????????? API ?????????

???????????????

?????????????????????????????????????????????????? Given-When-Then?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????顣

???????? Spock ??? BDD ???????У????????????????????£?

????Java????


import spock.lang.Specification;

class RomanCalculatorSpec extends Specification {
    def "I plus I should equal II"() {
        given:
            def calculator = new RomanCalculator()
        when:
            def result = calculator.add("I"?? "I")
        then:
            result == "II"
    }
}
 


???????????? JUnit ???? TestNG ???????????????????????? Given-When-Then ?????????????????????????????ú???????

??????????? ?? Mock

????????????????? xUnit ????????????????? xUnit ????????2?????????????????????????У????????????????л?????????????????????????????????????????????????????? Mock ??????????????????????? Mock ????????????????????Mock ??????????????????????????????? Mock ????????е????????????????????????á???????????????????в????????????????????????????????? Mock ?????????????????????????????????? Mock ???????????????????????????????????????磬??? UT ????????????????????????????????????????????????????? UT ????????????????????????????????????????? UT ???????У????????????????????????????? Mock ????????????????? Mockito ??????? Mock ???????

????Java????


List mockList = mock(List.class);
mockList.add("one");

verify(mockList).add("one");
 


??????????????? Mockito ??????????У??????????????