Test jednostkowy w maszynopisie

głosy
36

Wiem, maszynopis jest jeden dzień życia. Ale I`m ciekawy, czy jest tu somekind jednostka ramy testu lub sposób jak pisać testy jednostkowe i bieg na maszynie?

Maszynopis może być skompilowany do JavaScript i mogę napisać testu dla tej JavaScript, ale `s nie co chcę.

Utwórz 02/10/2012 o 19:18
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
20

Maszynopis nie jest językiem wykonawcze. Aby wykonać swój kod maszynopis najpierw trzeba go skompilować do JavaScript; To samo odnosi się do testowania go. Twoje testy mogą być w maszynopisie, jak również, skompilować zarówno w JavaScript i użyć ulubionego ramy testowej do wykonywania testów.

Odpowiedział 02/10/2012 o 19:32
źródło użytkownik

głosy
16

Możesz pisać testy jednostkowe na maszynie lub JavaScript, korzystając z jednej z istniejących ram badań jednostkowych JavaScript.

Bardzo szybko, wyobrażam sobie istniejące ramy dostanie plików definicji maszynopis otoczenia (aktualizacja - mają: http://definitelytyped.org/ ), co uczyni je statycznie wpisane miarę maszynopis jest zaniepokojony. W międzyczasie, może trzeba przeczytać na deklaracji otoczenia i dodać kilka własnych na początku swoich badań.

Alternatywnie, można użyć tsUnit maszynopis Unit Testing Framework , który stanowi ramy testów jednostkowych napisany na maszynie - tak odgrywa ładne z maszynopisu (i mogą być stosowane w JavaScript zbyt).

Odpowiedział 02/10/2012 o 22:31
źródło użytkownik

głosy
0

Wydaje się, że to kolejna próba biegacz / ramy nazywa Intern. https://theintern.github.io/

Oto artykuł wyjaśniający jak go używać w połączeniu z maszynopis: https://www.sitepen.com/blog/2015/03/24/testing-typescript-with-intern/

Wygląda całkiem obiecująco, gdy używasz maszynopis i szukasz setup unit-badawczego, który obsługuje mapy źródłowe.

Przykład testowy:

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.');
    }
});
Odpowiedział 30/09/2015 o 16:50
źródło użytkownik

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