?????????????????????????????????????????????iOS?????????????????????????????????????????о?Jenkins?????????????????????????????в??????????????????????ú??????????????????????????????д??????????
????XCTest Or GHUnit
????д????????????и???????????????е???Apple?????XCTest?????????GHUnit???????????????????????? XCTest????Xcode?????ɡ????????????Apple??????XCTest??????????? GHUnit??????????XCTest??????鷳?????????????GUI???檔 ò??????????????????????????Github????Щ??????????????????????ɡ?

??????????????????XCTest????????????GHUnit??GUI?????????????????????????塣??XCTest??????????????????Apple??????????????????????XCTest????ü??Github?????????XCTest??case???????ο?????????????????????????
????OCMock Or OCMockito
??????????????????mock????stub???????OCMock ?? OCMockito????о??????????????????????????????OCMock????OCMockito????????????????????????????OCMock?????????????????????????OCMock???????????mock?????
????Expecta Or OCHamcrest
????Expecta??OCHamcrest????????????????????????????????Expecta?????????????????佫?????????BDD???Specta??д????????????????Expecta ??Specta??????????????????????????????????????????????????BDD???????????????XCTest??Expecta???????????????Щ???????????????????Expecta?л?????OCHamcrest??
?????????????
????Expecta?????????????л???????0.3.1?汾????????????????????case????????????????????????????????????????????Expecta????????crash??
????OCHamcrest?????????????????????????????????????????
????????OCHamcrest?????superClass???????????????????????????bool????????ж?bool?????檔???鷳???????????superClass??????????????ζ?????鷳??д????????????????Expecta????????????????????????? ??????????OCHamcrest???????????Щ???????app?????????ж????
????BDD Or Not
????BDD???????Behavior Driven Development??????????????????BDD???????????????????????????д??????????????BDD??????????????д??????????????????????????????Given…When…Then??ɡ??????????????BDD???Kiwi????β??????:
????describe(@"Team"?? ^{
????context(@"when newly created"?? ^{
????it(@"has a name"?? ^{
????id team = [Team team];
????[[team.name should] equal:@"Black Hawks"];
????});
????it(@"has 11 players"?? ^{
????id team = [Team team];
????[[[team should] have:11] players];
????});
????});
????});
????????????????????Given a Team??When newly created??it should have a name?? and should have 11 players?? ???????????????????????????????????? ???BDD?????????????????BDD???Kiwi??XCTest + OCMock????????ɡ??????XCTest + OCMock??????XCTest?????Kiwi???mock???????XCTest???mock?????

???????????Kiwi????????????????Kiwi??mock????api????OCMock????????????OCMock3???????????????Kiwi??OCMock?????????????????????????????????????????BDD????????Specta??BDD?????????????????????С??Specta??Kiwi????????Kiwi??????Specta??OCmock???Expeata???е????????仰?Specta?????mock??????????kiwi??????????????specta??API??????????
???????????????????????BDD???л???XCTest??????к????????????BDD???hold???????????BDD?????????????????????????????????????????????BDD???????????????????XCTest??????JUnit????????????????????BDD???????????????????????????BDD????????????bug??????汾???????????????BDD??????????case?????????????е?case??????????????дcase ???????????????
???????
????????????????????????????????????XCTest + OCMock + OCHamcrest??????????????????????????????????~