??????????????????????
???????????? ???????[ 2015/6/26 15:13:24 ] ??????????????? ???????
????1.?????????????
???????????????????????????????????????????????е?
?????????????????????????????console?????????????????????????????????飬?′β????????????????Ч?????????????????д????????????????????α?д?????????
????????????????????????????????????????????????????л??漰????????ЩAPI??????????????????????ЩAPI?????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????API??????TDD???????????????????????
?????????????????????????????????????????????????????????????????????????????????????в??????????????????????????
????2.????????????????
????2.1??????
?????????????????????QUnit??jasmine??mocha??jest??intern???????Щ????????????????£???????????????о???
????Qunit:???????????????jquery???????????????????????????????jquery????????????????????????jquery?????
????jasmine:Behavior-Drive development(BDD)????????????????????У????????棬???asssert??mock????
????mocha:node????????tj?????????????node??browser?????????к???????????????????????????????????????report
????intern:?????????ò?????????????棬????????????????????????й???
????2.2?????
????chai??????????????е???????????TDD(assert)??BDD(expect??should)????????????
????var chai=require('chai');
????var assert=chai.assert;//typef assert==='object'
????chai.should();//??Obejct.prototype???????
????should.js:TJ????????????????
????expect.js:BDD????????????????????should.js????mini???BDD??
????assert(node??????????):??????node????????????
????2.3 mock??
????????????????mock?????????????????????????飬????Щ?????????????Щ??????粻???????????????????Σ????????????????????????飬???????????????????mock?????α??????????顣?????????XMLHttpRequest?????????http statusCode?404????????????????????????????????mock?????????
????sinon.js:???????mock????????spies??stub??fake XMLHttpRequest??Fake server??Fake time???????????????????????
????2.4 test runner
????karma:???ò???????????????????????????????????????????????????в????
????3.??????????????????
????????????ж????????????????????console???????text???
???????????actual???expect???????????????????????????????????????Щ?????????????????????????????????????????????????????
????mock??????????????μ??????????????????????????????????????o?????????Щ??????????????called??calledWithArguments?????
????function describe(text??fn){
????try{
????fn.apply(...);
????}catch(e){
????assert(text)
????}
????}
????function fn(){
????while(...){
????beforeEach();
????it(text??function(){
????assert();
????});
????afterEach();
????}
????}
????function it(text??fn){
????...
????fn(text)
????...
????}
????function assert(expect??actual){
????if(expect not equla actual){
????throw new Error(text);
????}
????}
????function fn(){
????...
????}
????function spy(cb){
????var proxy=function(){
????...
????}
????proxy.called=false;
????proxy.returnValue='...';
????...
????return proxy;
????}
????var proxy=spy(fn);//??????mock????
????4.???д???????????
????4.1???
???????????????????????????????????
??????????????????????????????
?????????????????????
???????????????????????????
????????AOP(beforeEach??afterEach)?????????????????????????ù???
?????????????????????????????????????
????4.2 TDD
??????仰???????????д???????д????????TDD??????????????????????????????????????????????????????????????????????嶨?????????;
????????????TDD???????????????????????????????????????????????????£??????????????TDD???????????????????????д?????????????????????????????????????????????к?????????????????????????д?????????????????????TDD????????????á?
????4.3 BDD
?????????????????????????????????????????????????????QA?????????????Э????BDD???????????????????????????(????GUI)?????ó?????????.
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11