4

私は最近、qUnit と Chutzpah を組み込んで、作業中の typescript で書かれたプロジェクトの単体テストを試みました。

私は正しい方法であると信じている方法でセットアップを行い、次のことが機能します。

  • タイプスクリプトアプリケーション!- アプリケーションの非常に初期のバージョンを実行できます
  • Chutzpah - これを VS2012 にインストールしたところ、qUnit デモ テストが正しく表示されました
  • qUnit - インストールされているように見え、Chutzpah で動作します。簡単なテスト (自分のコードを見ないテスト) を実行できます。

これら3つが整ったら、typescriptアプリのテストを書き始めることができると思いました。テストとして、typescriptで簡単なテストを書きました。

TreeBurst.Tests.ts

///<reference path="../typings/qunit/qunit.d.ts" />
///<reference path="references.ts">
///<reference path="references.js"> // just in case, unsure what needed referencing here

module DMC.TreeBurst {

QUnit.module("TreeBurst.Node.ts tests");

test("Load-a-single-node-creates-correctly", () => {

    var node = [new DMC.TreeBurst.Node({
        id: 1,
        parentId: null,
        title: ""
    })];

    ok(node, "Node not created correctly when provided valid constructor parameters");

});
}

残念ながら、これを実行すると、次のようになります。

'undefined' is not a constructor (evaluating 'new DMC.TreeBurst.Node({
                id: 1,
                parentId: null,
                title: ""
            })')

今ではコンストラクターであるべきだと確信していますが、フツパーとqUnitの組み合わせはそのようなものではないようです。

私は時間をかけて検索しましたが、私が見つけたものはすべて、物事が「うまくいく」べきであることを示唆しています. ここで明らかに間違ったことをしていますか?

どんな考えでも大歓迎です。

編集:コメントに応じて、これはクラス宣言です:

/// <reference path="references.ts" />
module DMC.TreeBurst {

export interface NodeOptions {

    // location specific
    id: number;
    parentId?: number;

    // node internals
    title: string;
    content?: string;
    colour?: string;        
}

export class Node {

    public id: number;
    public parentId: number = null;
    public title: string;
    public content: string = null;        
    public depth: number = null;

    public colour: string = null;

    constructor(opts: NodeOptions) {
        //removed from brevity
    }
    // methods removed for brevity
}
}
4

2 に答える 2

1

テスト ファイルとコード ファイルの次の定義を使用して、サンプルを動作させることができました。すべてのファイルを同じディレクトリに配置しましたが、簡単に移動してパスを変更できます。

TreeBurst.tests.ts

///<reference path="qunit.d.ts" />
///<reference path="TreeBurst.ts" />

module DMC.TreeBurst {

QUnit.module("TreeBurst.Node.ts tests");

test("Load-a-single-node-creates-correctly", () => {

    var node = [new DMC.TreeBurst.Node({
        id: 1,
        parentId: null,
        title: ""
    })];

    ok(node, "Node not created correctly when provided valid constructor parameters");

});
}

TreeBurst.ts

module DMC.TreeBurst {

export interface NodeOptions {

    // location specific
    id: number;
    parentId?: number;

    // node internals
    title: string;
    content?: string;
    colour?: string;        
}

export class Node {

    public id: number;
    public parentId: number = null;
    public title: string;
    public content: string = null;        
    public depth: number = null;

    public colour: string = null;

    constructor(opts: NodeOptions) {
        //removed from brevity
    }
    // methods removed for brevity
}
}
于 2013-12-14T22:10:48.600 に答える