5

私はjavascript単体テスト(ジャスミンを使用)を始めています。

C# コードの単体テストの経験があります。しかし、javascript が動的言語であることを考えると、それを利用して、javascript の表現力を使用してテストを作成することは非常に便利だと思います。たとえば、次のようになります。

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();
        });
    });
});

この種の型破りなテスト ライティングを行う限り、私はこの種のテスト (非常に類似したテスト ケースのリストを含む配列) を行う以上のことはしていません。

だから私の質問は

このようなテストを書いても問題ありませんか?それとも、より「静的に型付けされた」テスト フィクスチャに制限する必要がありますか?

4

1 に答える 1

3

素晴らしい質問です。

はい、このような単体テストを書くことはまったく問題ありません。励まされることさえあります。

JavaScript は動的言語であるため、オブジェクトを非常に簡単にモックできます。DI と IoC は非常に簡単に実行できます。一般的に、Jasmine (または私が個人的に好む Mocha) でのテストは、快適で楽しい経験です。

動的言語を使用しているため、静的に型付けされた言語では行わなかったテストが必要であることに言及する価値があります。テストは通常​​、既存のメンバーとメソッド、および型を適用します。

コントラクトを定義するためのインターフェイスがないため、多くの場合、テストでコードのコントラクトを定義するため、C# では行わないこの種の検証 (コード内など) をテストで行うことは珍しくありません。

于 2013-03-19T20:36:19.037 に答える