【问题标题】:Mocha test case for query based functions基于查询的函数的 Mocha 测试用例
【发布时间】:2014-06-25 15:16:33
【问题描述】:

我是摩卡的新手。有人可以建议如何为“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”作为数据库。

【问题讨论】:

    标签: node.js express mocha.js


    【解决方案1】:

    如果您的意图是断言页面呈现/功能,我会使用 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 都可用于执行这两项任务。

    使用您选择的断言库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2014-08-08
      • 2019-11-27
      • 2014-02-08
      • 1970-01-01
      • 2015-05-17
      • 2017-01-10
      相关资源
      最近更新 更多