I am new to Mocha. Can someone suggest how to write test case for "retrieveEmployee" function.
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 });
});
};
I am using 'MySql' for database.
If your intent is to assert page renderings/functionality I'd use something like Zombie.
app.js
app.get("/", function(req, res, next) {
res.render("index", {title: 'Hello World!'});
});
test/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();
});
});
});
If your intent is more of an API endpoint, then something like supertest would work nicely.
app.js
app.get("/api", function(req, res, next) {
res.send({foo: 'bar'});
});
test/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);
});
});
However, both Zombie or supertest can be used to do both of these tasks.
Use the assertion library of your choice.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With