Ich bin sehr neu in NodeJS.Ich brauche Hilfe beim Testen einer einfachen API, die ich mit Express erstellen.Test Express Route in Nodejs mit verspottet Modul
Ich habe die folgende Route in meinem API:
router.get('/execute', function(req, res, next) {
console.log("Execute Request Query: %s", util.inspect(req.query, false, null));
// Validate Reqest. gremlin is Mandatory field
if (req == null || req.query.gremlin == null) {
res.status(400).send(getErrorResponse("Invalid Request", "Request is missing mandatory field: gremlin"));
return;
}
queryDB(req.query.gremlin, res);
});
Diese Route ruft eine gemeinsame Methode queryDB, die einen API-Aufruf an die Titan DB macht mit seiner Restful Schnittstelle. Ich verwende node_module Restler, um diesen API-Aufruf durchzuführen.
Jetzt möchte ich den "Ausführen" Endpunkt meiner API testen. Ich bin in der Lage, dies mit folgenden zu tun:
var www = require("../bin/www");
var superagent = require('superagent');
var expect = require('expect.js');
var proxyquire = require('proxyquire');
describe('server', function() {
before(function() {
www.boot();
});
describe('Execute', function() {
it('should respond to GET', function(done) {
superagent
.get('http://localhost:' + www.port + "/gremlin/execute?gremlin=99-1")
.end(function(err, res) {
expect(res.status).to.equal(200);
expect(res.body.data[0]).to.equal(98);
done()
})
})
});
after(function() {
www.shutdown();
});
});
Allerdings mache ich derzeit Aufruf an meine Datenbank, die ich verspotten muss. Ich habe online einige Beispiele gesehen, die dir helfen, Knotenmodule zu verspotten, die ich verwenden könnte, um "Restler" zu verspotten. Da ich jedoch eine API durch Aufruf des Endpunkts teste, bin ich mir nicht sicher, wie ich ein Modul dafür vortäuschen sollte.
schaute ich auf die folgenden Beispiele: https://stackoverflow.com/a/33773233/2596762 https://www.terlici.com/2015/09/21/node-express-controller-testing.html usw.
Jede Hilfe oder einen Vorschlag zu schätzen wissen. Vielen Dank.