基于查询功能的摩卡测试用例

时间:2014-06-25 15:16:33

标签: node.js express mocha

我是摩卡的新手。有人可以建议如何为“ retrieveEmployee ”函数编写测试用例。

var mysql = require('mysql');

var dbconfig = {
    host:'localhost',
    user:'root',
    password:'root',
    database:'db',
    port:'3306'
};

exports.retrieveEmployee = function(req, res){
      var connection = mysql.createConnection(dbconfig);
      var query ='SELECT emp_Id, emp_Name FROM employee';
      connection.query(query, function(err, rows, fields){
        if(err) 
            throw err;
        res.render('index', { title: 'Employee', 'items':rows });    
      });
};

我正在使用'MySql'作为数据库。

1 个答案:

答案 0 :(得分:0)

如果您的意图是断言页面渲染/功能,我会使用类似Zombie的内容。

实施例

app.js

app.get("/", function(req, res, next) {
  res.render("index", {title: 'Hello World!'});
});

测试/ app.js

var Browser = require('zombie');
var app = require('../app');

describe("a html endpoin", function() {
  var server;
  beforeEach(function(done) {
    server = app.listen(7331, done);
  });

  afterEach(function(done) {
    server.close(done);
  });

  it("has some title", function(done) {
    var browser = new Browser();
    browser.visit("http://localhost:7331/")
      .then(function() {
        var title = browser.text('title');
        assert.equal(title, 'Hello World!');
        done();
      });
  });
});

如果你的意图更像是一个API端点,那么像supertest这样的东西可以很好地工作。

实施例

app.js

app.get("/api", function(req, res, next) {
  res.send({foo: 'bar'});
});

测试/ app.js

var request = require('supertest');
var app = require('../app');

describe("an api endpoint", function() {
  it("returns some sort of json", function(done) {
    request(app)
      .get("/api")
      .expect(200, {foo: 'bar'}, done);
  });
});

但是,Zombiesupertest都可用于执行这两项任务。

使用您选择的断言库。