编写测试用例

Node.js中已经有很多优秀的测试框架,例如:mocha, jasmine等。

这里,我们选择了mocha作为测试框架。

想要了解mocha的读者,可以访问其主页以获取更多信息: mochajs.org

  • 安装mocha
  1. npm install -g mocha

mocha集成了很多的特性,用户可以根据项目的特点选择合适的特性进行测试用例的编写。而在此,我们可以选择”assertion”(断言)来对”node-validator”进行测试。

  • 引入assert
  1. var assert = require('assert');

“assert”中包含了很多Node.js中有关断言的模块,例如shoud.js, expect等。这些模块多数都是行为驱动开发(BDD)的实践。

  • assert示例
  1. describe('Array', function() {
  2. describe('#indexOf()', function() {
  3. it('should return -1 when the value is not present', function() {
  4. [1,2,3].indexOf(5).should.equal(-1);
  5. [1,2,3].indexOf(0).should.equal(-1);
  6. });
  7. });
  8. });

这看起来就像是我们用英语描述了一件事情。没错,我们要做的就是描述”node-validator”中的函数运行正确是什么样的,运行错误是什么样的。

照着上面的例子,可以写出测试用例代码原型:

  1. var assert = require('assert');
  2. var validator = require('validator-test');
  3. describe('Validator', function () {
  4. describe('#isEmail', function () {
  5. it('should return true when the string is an email address', function () {
  6. if (validator.isEmail('foo@bar.net') !== true) {
  7. throw new Erorr('Validator not right');
  8. }
  9. });
  10. });
  11. });

然后在终端中输入mocha,会自动运行test目录下的test.js文件:

  1. mocha

得到以下结果:

  1. Validator
  2. #isEmail
  3. should return true when the string is an email address
  4. 1 passing (6ms)

所以接下来要做的事情,就是为每一个”node-validator”中的函数编写测试用例,以期将所有的情况都覆盖到。