1

QUnit を使用してtypescriptコードをテストしていますが、次のような簡単な例を実行するとすべて問題ありません。

しかし、SPA アプリの単体テストを作成しようとすると、悪夢が始まります。VS で Chutzpah を使用してテストを実行しようとしているときに、奇妙なエラーが発生しました。

私のコード怒鳴る:

home.ts

import logger = module('services/logger');
export var title = 'Home View';

export function activate() {
    logger.log('Home View Activated', null, 'home', true);
    return true;
}

home.tests.ts

/// <reference path="../../Scripts/qunit.d.ts" />
QUnit.module("home.ts tests");
import home = module("home");

test("test title from home viewmodel", function () {

    // Calling to active public function from home viewmodel. (home.ts)   
    var activateResult:string = home.title;

    // Assert
    equal(activateResult, "Home View", "Result should be Home View ");

});

ここに私のtypeScript設定があります: タイプスクリプトの設定

私のコードの何が問題なのですか?

更新 1 Vs2012 の出力ウィンドウからの完全なメッセージは次のとおりです。

テスト 'home.ts tests:test activate function from home viewmodel' が失敗しました file:///C:/Users/rolando/AppData/Local/Microsoft/VisualStudio/11.0/Extensions/kyo4ap1e.tvo/TestFiles のテスト #1 で停止しました/QUnit/qunit.js:412 at file:///D:/Mercatus/SourceCode/KILN/AquaVet2/SW/AquaVet.Web/App/viewmodels/_Chutzpah.7.home.tests.js:6: できませんfind variable: home in D:\Mercatus\SourceCode\KILN\AquaVet2\SW\AquaVet.Web\App\viewmodels\home.tests.ts (6 行目)

合格 0 件、不合格 1 件、合計 1 件 (chutzpah)。

更新 2 コードでわかるように、キーワード module("home"). を使用して home.ts をロードしようとしています。それが問題の原因であるかどうかはわかりません。より良い解決策は、home.ts への内部参照を追加することです。

内部参照として home.ts を追加する

しかし、アクティベート機能を参照する方法がわかりません!!。

4

1 に答える 1