Nodejs???????С??
???????????? ???????[ 2015/7/10 10:05:19 ] ?????????????????? ???????
???????
????????д??γ??Project????Nodeд???????????С??????????????????????дNode????????????????????????????????????????????????Node?????????????????δ?г???????????????????д???????????Node???浥??????????????????????Github???棬??????https://github.com/blogdemos/node-test-demo">https://github.com/blogdemos/node-test-demo?????fork~
?????????????
?????????????????壺
??????????????У???????????????????? Unit Testing????????????饗???????С??λ????????????????????????????????????С????????????????????У??????????????????????????????????????????С?????????????????????????????????????????????е??????
????JavaScript?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????GUI?????????????????????鷳??????Node???????????JavaScript????????????????????????????????????
???????????????????????????????????????????????
?????????????????????????????
???????????????????????
?????????????????????????????????????
????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????幦???????λ????????????????????????????????????????????????????????Ч????????д?????????????о???????????????????????????????????????????????????????????????????????????????????????????????Github????????star?????repo????????????????????????Щrepo??????????????????????????????????????????????????
???????????????
?????????????????????????????????????BDD??TDD
????TDD
????TDD??????????Test-Driven Development??????????????????????????????????????
???????????д???Щ???????
?????????????????Щ???????????????????????Щ????????????????????????????????????????
???????????????????????????????????
?????????????д??????????????????????????????????????????????
??????????????????????????????????????????
??????????????????
????BDD
????BDD??????????Behavior-Driven Development?????????????????
????BDD??TDD?????????????д????????????????BDD?????????????????????飬????????????????????????????????BDD????????Demo???BDD??????
????????BDD??TDD????????????????£? The Difference Between TDD and BDD
????mocha?????
???????JavaScript???????????ò??????????????TJ Holowaychukд??Mocha???
???????
????Mocha?????????node.js????????????????????Javascript??????????????????????????????????Mocha??????????????????????????????????δ??????????????????????????檔
??????????
npm install -g mocha
$ npm install -g mocha
$ mkdir test
$ $EDITOR test/test.js
var assert = require("assert");
describe('Array'?? function() {
describe('#indexOf()'?? function() {
it('should return -1 when the value is not present'?? function() {
assert.equal(-1?? [1??2??3].indexOf(5));
assert.equal(-1?? [1??2??3].indexOf(0));
});
});
});
$ mocha
.
? 1 test complete (1ms)
????????????
?????????????е?????????????????????????????????????????????
????should.js
????should ????????????????????????????“????”??????BDD?????????????????????????????????????Object??prototype???????????????????????????
????node????????????????飬????should?????е?????????????????????????????????????
???????????????Chai??expectjs??????????
????supertest
????????Node??Web????????????HTTP?????????????????????????????????????????Low???
????supertest?????????????????node?????HTTP???????е????????????dmeo???????????????д??
????var request = require('supertest')
?????? express = require('express');
????var app = express();
????app.get('/user'?? function(req?? res){
????res.send(200?? { name: 'tobi' });
????});
????request(app)
????.get('/user')
????.expect('Content-Type'?? /json/)
????.expect('Content-Length'?? '20')
????.expect(200)
????.end(function(err?? res){
????if (err) throw err;
????});
???????????
?????????????????????????????????????д??????????demo?????demo?????????????-?????????????????
????????????й???Github???棬??????https://github.com/blogdemos/node-test-demo.git
???????
??????????????nodejs??express???д??????????????к????????????demo??е??????????????????е?????????????????????????????
??????????
????.
?????????? controllers // ?????
????| ?????? site.js // ?????????
????| ?????? topic.js // ???????
?????????? models // ???????
????| ?????? index.js // ???????
????| ?????? topic.js // ???????
????| ?????? user.js // ??????
?????????? proxy // ????????
????| ?????? topic.js // ???????????
????| ?????? user.js // ??????????
?????????? tests // ???????
????| ?????? support/support.js // ???????
????| ?????? user.test.js // ????????????
????| ?????? topic.test.js // ??????????
?????????? app.js // ????????
?????????? consig.js // ??????????
?????????? package.json // ?????
?????????? router.js // ·??????
???????
????1. ???????????
????????????I/O??Node???????????????node????????ó????????????????÷??????д????????????????????????????????????????????????
????????Mocha??????????????????????????????????????????ɡ??????it()???????????????????done????????Mocha??????????????????????????ù??????????
????describe('User'?? function() {
????describe('#save()'?? function() {
????it('should save without error'?? function(done) {
????var user = new User('Luna');
????user.save(done);
????});
????});
????});
??????
???·???
??????????????????
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