4

Недавно я попытался включить qUnit и Chutzpah для тестирования проекта, над которым я работаю, написано в машинописном тексте.Использование Chutzpah для запуска машинописных тестов qUnit

У меня установка вещи в том, что я считаю правильным образом и следующие вещи работают:

  • Применение машинопись! - Я могу бежать очень раннюю версию приложения
  • наглость - я установил это на VS2012 и правильно видеть это мой QUnit демонстрационный тест
  • QUnit - оявляется установлен и работает с наглостью, я могу запустить простой тест (тот, который не смотрит на мой код)

с помощью этих трех на месте я предполагаемому я мог бы начать писать тесты для приложения машинопись, как тест, который я написал простой тест в машинописи:

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 не кажется, чтобы увидеть его в таких ,

Я потратил некоторое время на поиски, но все, что я нашел, говорит о том, что вещи должны «работать». Я делаю что-то явно неправильно здесь?

Любые мысли очень ценятся.

EDIT: В ответ на комментарий, это объявление класса:

/// <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 
} 
} 
+1

Вы просто должны быть в состоянии сделать новый узел (....), так как вы уже пространство имен TreeBurst. Также вы экспортировали свой класс узлов? –

+0

@ N.TaylorMullen Да, я получаю тот же результат с полным или без него, я тоже экспортировал класс, отредактировав вопрос, чтобы показать, что в случае, если я сделал что-то не так. – dougajmcdonald

ответ

0

не Добавление ссылки на файл JS имеет никакого эффекта. Также вместо ссылки reference.ts ссылается на папку http://matthewmanela.com/blog/chutzpah-2-2-with-typescript-support/, это связано с тем, как chutzpah работает (не скомпилирует упомянутые файлы с --out)

+1

Спасибо за ответ, я добавил ссылку .js в отчаянии! но безрезультатно. Я обновил ссылку на использование папки или даже ссылку на конкретный файл DMC.TreeBurst.Node.ts, но я все равно получаю тот же ответ. Есть ли другие места для просмотра? – dougajmcdonald

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 
} 
} 
Смежные вопросы