2017-06-23 3 views
0

Wie Unit-Test für den Balg DateiKnoten js Unit-Test sinon chai

index.ts

import ---- 
import ---- 

let workerService = new WorkerService(); 
let creatWorkerPromise = Promise.promisify(workerService.createWorkers); 

creatWorkerPromise() 
.then(function(){ 
    let kafkaService = new KafkaService(kafkaConfig, workerService); 
}) 
.catch(function (err: any) { 
    console.log('Error while creating workers:', err); 
}); 
+0

Ihre Frage zu unklar ist zu beantworten. Ein Unit Test soll eine Frage beantworten. Was versuchst du zu testen? Möchten Sie testen, dass 'KafkaService' mit einer bestimmten Konfiguration aufgerufen wird, oder was? Und wenn das ein Modul ist, was ist dann seine API? – oligofren

+0

danke @ oligofren hier möchte ich 2 Bedingungen testen, 1. wenn es Erfolg ist console.log sollte nicht aufrufen, 2. wenn es fehlschlägt console.log sollte –

Antwort

1

Es ist irgendwie schwer zu schaffen, etwas zu testen, die keine Einheit ist, als eine Einheit stellt normalerweise Methoden zur Verfügung, die getestet werden sollen, also gehe ich davon aus, dass Sie dies eventuell im Testcode machen. So, hier geht:

/////////// 
 
// index.js 
 
/////////// 
 
// stubs for this example to work 
 
var createWorkerPromise = function(){ return Promise.resolve(); } 
 
var workerService, kafkaConfig; 
 
function KafkaService(){ throw new Error("crashes test"); } 
 

 
function exportedFunction(){ 
 
    return createWorkerPromise() 
 
    .then(function(){ 
 
     var kafkaService = new KafkaService(kafkaConfig, workerService); 
 
    }) 
 
    .catch(function (err) { 
 
     console.log('Error while creating workers:', err); 
 
    }); 
 
} 
 

 
/////////// 
 
// test.js 
 
/////////// 
 
var log = console.log.bind(console); 
 
var assert = function(expr) { 
 
    if(!expr) throw new Error("AssertionError"); 
 
    log("TEST OK"); 
 
} 
 

 
// the test 
 
var spy = sinon.spy(console, 'log'); 
 
exportedFunction().then(function test() { 
 
    assert(spy.called); 
 
    
 
}).catch(log.bind(null, "TEST FAILED"))
<script src="https://unpkg.com/[email protected]/pkg/sinon.js"></script>

+0

genannt werden danke ich werde versuchen, diese –

+0

Sie könnten auch interessiert sein an http : //sinonjs.org/how-to/link-seams-commonjs/. Wenn meine Antwort Ihre Frage löst, sollten Sie sie als Lösung markieren – oligofren

Verwandte Themen