UnitTesting dactylographiée

voix
36

Je sais, tapuscrit est vieux un jour. Mais je m `est ici curieux de savoir si somekind framework de test unitaire ou moyen écrire et les tests unitaires d'exécution pour tapuscrit?

Tapuscrit peut être compilé pour JavaScript et je peux écrire test que JavaScript, mais il s `pas ce que je veux.

Créé 02/10/2012 à 19:18
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
20

Tapuscrit est pas une langue d'exécution. Pour exécuter votre code dactylographiée vous devez d'abord compiler JavaScript; même pour le tester. Vos tests peuvent être dactylographiée ainsi, à la fois compiler en JavaScript et utiliser votre framework de test favori pour exécuter les tests.

Créé 02/10/2012 à 19:32
source utilisateur

voix
16

Vous pouvez écrire vos tests unitaires ou dactylographiée JavaScript, en utilisant l'un des frameworks de tests unitaires existants JavaScript.

Très vite, j'imagine que les cadres existants auront des fichiers de définition ambiante dactylographiée (mise à jour - ils ont: http://definitelytyped.org/ ), ce qui les rendra statiquement typés en ce qui concerne tapuscrit. En attendant, vous devrez peut - être lire sur les déclarations ambiantes et ajoutez quelques de vos propres au début de vos tests.

Vous pouvez également utiliser tsUnit cadre tapuscrit tests unitaires , ce qui est un cadre de tests unitaires écrits en caractères dactylographiés - il joue bien avec tapuscrit (et peut être utilisé en JavaScript aussi).

Créé 02/10/2012 à 22:31
source utilisateur

voix
0

Semble il y a un autre coureur de test / cadre appelé stagiaire. https://theintern.github.io/

Voici un article expliquant comment l'utiliser combiné avec tapuscrit: https://www.sitepen.com/blog/2015/03/24/testing-typescript-with-intern/

Semble assez prometteur lorsque vous utilisez tapuscrit et que vous cherchez une installation-test de l'unité qui prend en charge les cartes source.

test Exemple:

import registerSuite = require('intern!object');
import assert = require('intern/chai!assert');
// Assume that we now have a version of our model in TypeScript:
import SimpleTodoModel = require('todo/model/SimpleTodoModel');

registerSuite({
    name: 'SimpleTodoModel',
    // Assume we have a promises interface defined
    'default data'() {
        var emptyModel = new SimpleTodoModel(),
            id:string = emptyModel.get('id'),
            length:number = emptyModel.get('todos').length,
            incomplete:number = emptyModel.get('incomplete'),
            complete:number = emptyModel.get('complete');
        assert.strictEqual(id, 'todos-dojo',
                    'Id should default to "todos-dojo"');
        assert.strictEqual(length, 0,
                    'Todos array should default to an empty array.');
        assert.strictEqual(incomplete, 0,
                    'Incomplete count should default to 0.');
        assert.strictEqual(complete, 0,
                    'Incomplete count should default to 0.');
    }
});
Créé 30/09/2015 à 16:50
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more