nodejs-test

unit Test

코드검사

  1. 동료검토
  2. Code linter
  3. 코드검사(Code Coverage)
    • Istanbul: 코드의 어떤부분이 테스트로 다뤄지지 않았는지 검사
    • Chai: assrtion 라이브러리
    • Mocha: 테스트 레이아웃 라이브러리

      Mocha

      install
      1
      $ npm install --save mocha
      run1
      1
      $ node node_modules/.bin/mocha
      run2
      1
      //package.json
      2
      {
      3
          ...
      4
          "scripts": {
      5
              "test": "mocha"
      6
          },
      7
          ...
      8
      }
      1
      $ npm test

      Chai + Mocha

      install
      1
      $ npm install --save chai
      useage
  • run ./test/*.js
    1
    var module = require("../module");
    2
    3
    var chai = require("chai");
    4
    var expect = char.expect;
    5
    6
    describe("module", function () {
    7
        it("test name 1", function () {
    8
            expect(module("variables1", ...)).to.equal("expectedValue1");
    9
            ...
    10
        });
    11
        it("test name 2", function () {
    12
            expect(module("variables2", ...)).to.euqal("expectedValue2");
    13
            ...
    14
        });
    15
        ...
    16
    });
    mocha before each
    1
    describe("User", function () {
    2
        var user;
    3
        beforeEach(function () {
    4
            user = new User({
    5
                firstName: "fname",
    6
                lastName: "lname"
    7
            });
    8
        });
    9
    10
        it("something", function () {
    11
            expect(user.getName()).to.equal("fname lname");
    12
        });
    13
        //...
    14
    })
    error test
    1
    //...
    2
    it("throws an error", function() {
    3
        expect(function() { capitalize(123); }).to.throw(Error);
    4
    });
    5
    //...
    not
    1
    //...
    2
    if("changes the value", function () {
    3
        expect(capitalize("foo")).not.to.expect("foo");
    4
    });
    5
    //...

    EndPoint Test

Share