2013-03-19 22 views
5

Ho iniziato con i test delle unità javascript (con Jasmine).Unità test stile codice javascript

Ho esperienza nel codice C# di test unitario. Ma dato che JavaScript è un linguaggio dinamico, lo trovo molto utile per sfruttare questo, e le prove di scrittura utilizzando la potenza espressiva di javascript, per esempio:

describe('known plugins should be exported', function(){ 
    var plugins = ['bundle','less','sass','coffee','jsn','minifyCSS','minifyJS','forward','fingerprint']; 

    plugins.forEach(function(plugin){ 
     it('should export plugin named ' + plugin, function(){ 
      expect(all[plugin]).toBeDefined(); 
     }); 
    }); 
}); 

Per quanto riguarda fare questo tipo di test-non convenzionale la scrittura, non sono andati oltre a fare questo tipo di test (matrice con un elenco di casi di test che sono molto simili)

Quindi credo che la mia domanda è

E 'bene per scrivere i test come questo, o dovrei limitarmi a un dispositivo di prova più "tipizzato staticamente"?

risposta

3

Ottima domanda!

Sì, è perfettamente corretto scrivere test di unità come questo. È persino incoraggiato.

JavaScript essendo un linguaggio dinamico consente di simulare gli oggetti con estrema facilità. DI e IoC sono veramente facile da fare. In generale, testare con Jasmine (o Mocha che personalmente preferisco) è un'esperienza piacevole e divertente.

Vale la pena ricordare che dal momento che sei in un linguaggio dinamico, è necessario disporre di test che non hai fatto in lingue tipizzate in modo statico. I test generalmente applicano membri e metodi esistenti e tipi.

Non avendo interfacce per definire il vostro contratto, spesso, i test definiscono il contratto del vostro codice quindi è davvero non è raro vedere i test fanno questo tipo di verifica (come nel codice), dove si farebbe non in C#.

+1

assolutamente, per lo più volevo un'opinione sul fatto che fosse difficile creare casi di test come quello – bevacqua