私は最近、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
}
}