Ich versuche gerade, etwas Code zu instrumentieren, wenn ich eine Testsuite in Javascript laufe, aber es gibt Probleme, wenn es darum geht, Daten tatsächlich auszuspucken, wenn ich Mocha benutze.Side Effects mit Mokka
Es scheint wie, wenn ich versuche, etwas auszudrucken (oder sogar in eine Datei schreiben), habe ich keinen Erfolg.
Siehe unten für eine Probe:
main.js
var Foo = require('./lib')
Foo()
module.exports = function(a) { return a + 1}
lib.js
var fs = require('fs')
module.exports = function() {
setTimeout(function() {
fs.writeFile('test_file', 'hello world', function(){})
console.log('hello finished')
}, 1000)
console.log('hello begin')
}
test.js
var x = require('./main')
describe("some test", function() {
it("should do something", function(done) {
done()
})
})
Das Ergebnis eine Datei erstellen soll benannt test_file
wit h den Inhalt von hello world
.
Ich habe ein Repository erstellt, das das vollständige Beispiel enthält, das einfach geklont und getestet werden kann.
https://github.com/hamhut1066/mocha-mockup
Prost, das ist, was ich gesucht habe. Du weißt nicht, wie man Mokka bekommt, um mit dem Töten aufzuhören, oder? – hamhut1066
Nein. Und es klingt wie "wie man Mokka zerbricht".Was mich betrifft, sieht es so aus, als hättest du schlecht gestaltete Tests - ich meine, wenn du nach etwas Wartezeit etwas überprüfen willst, dann solltest du das nicht tun() bis du das testetest. –
Im Wesentlichen versuche ich, eine Bibliothek von Drittanbietern zu instrumentieren, die Mocha verwendet, um Tests durchzuführen (die Tests sind gesund). Ich möchte Daten zur Laufzeit sammeln und dann ausgeben, nachdem alle Tests ausgeführt wurden. Ich bin in keiner Weise besorgt über die Qualität der Tests. – hamhut1066