J'essaie de tourner la tête autour de la nature asynchrone de node.js et nodeunit.apprentissage nodeunit
maintenant nodeunit est censé me aider, mais il me donne des maux de tête ainsi:
$ nodeunit test_logfile.js
test_logfile.js
✖ testLogentry
Error: Expected 1 assertions, 0 ran
at Object.done (/home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/lib/types.js:119:25)
at /home/mark/devel/PerfDriver/test/test_logfile.js:48:10
at Object.runTest (/home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/lib/core.js:54:9)
at /home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/lib/core.js:90:21
at /home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/deps/async.js:508:13
at /home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/deps/async.js:118:13
at /home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/deps/async.js:134:9
at /home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/deps/async.js:507:9
at Object.concatSeries (/home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/deps/async.js:147:23)
at Object.runSuite (/home/mark/.node_libraries/.npm/nodeunit/0.5.1/package/lib/core.js:79:11)
FAILURES: 1/1 assertions failed (50ms)
node.js:116
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: ECONNREFUSED, Connection refused
at Socket._onConnect (net.js:576:18)
at IOWatcher.onWritable [as callback] (net.js:165:12)
voici mon testcase:
var nodeunit = require('../lib/nodeunit/lib/nodeunit.js')
var http = require('http');
var logfile = require('../src/logfile.js');
var testmsg = 'this is my first testmessage:-_,.:;öüäß?1234"@€';
exports.testLogentry = function(test) {
test.expect(1); // make sure all the async expectations are fulfilled
var options = {
host: 'localhost',
port: 8123,
path: '/',
method: 'POST',
record_message: function(msg) {
console.log('received ' + msg + '\n');
test.equal(msg, testmsg);
return;
}
};
var logger = logfile.loggerFactory(options);
logfile.write(testmsg, options);
logger.stop();
test.done();
};
Je suppose que ma question est de savoir si les affirmations fonctionnent bien dans callbacks ou s'il existe des restrictions pouvant entraîner l'échec du testcase. Mon hypothèse est que nodeunit est capable de faire face au style de programmation asynchrone. Donc je m'attends à "test.equal (msg, testmsg);" travailler. Si j'exécute le contenu du testcase dans la console du nœud, alors "record_message" est appelé. Je publierais aussi logfile.js mais c'est probablement beaucoup et je cherche des conseils plus généraux.
Merci.
Mark
Alors, pourquoi vous ne supprimez simplement votre question précédente après y avoir répondu? Est-ce que ma suggestion était correcte ou non? Vous n'avez pas aimé que j'ai critiqué le "style" à la fin (pour une raison - et non déraisonnable!) - mais jamais pris la peine de répondre à la suggestion. Pas vraiment un bon coup. –