2014-10-24 3 views
2

Я запускаю Visual Studio 13 с бегуном-испытателем Chutzpah и библиотекой Жасмин. Я хочу, чтобы проверить класс А, который имеет зависимостей для класса B. Класс А также имеет зависимости для JQuery мой код выглядит примерно так:TypeScript + Chutzpah + Jasmine - Как включить зависимости в модульном тесте?

/// <reference path="../typings/jquery/jquery.d.ts"/> 
/// <reference path="../B.ts"/> 

describe("A",() => { 
    it("can be instaniated",() => { 
     var instance = new A(); 
    }); 
}); 

Но я получаю сообщение об ошибке, когда я запускаю тест-бегун, который говорит : Ошибка: ReferenceError: не удается найти переменную: $ Так что, похоже, что тестировщик не может разрешить ввод текста для JQuery?

Я пытался добавить следующий код:

/// <reference path="../jquery-2.1.1.js"/> 

Но тогда компилятор жалуется, что только файлы «.ts» действительны ?! Так что мне здесь не хватает? Я думал, что было нормально включать JS-файлы в TS-файлы? И почему мне нужны -блоки в тестах Jasmine, но нигде в приложении (компилятор автоматически разрешает зависимости)?

Есть ли «стандартный способ» разрешения зависимостей при запуске Chutzpah + Jasmine в TypeScript?

+0

Я добавил подробный ответ. Я подозреваю, что у вас уже есть определение типа и нужно сделать последний шаг в ответе (но я считаю полезным написать ответ, который будет охватывать аналогичные проблемы, которые могут иметь другие люди). – Fenton

ответ

1

Это совершенно справедливо для вызова JavaScript из TypeScript.

В вашем случае, вы можете сделать один из двух вещей ...

  1. добавить declare var $: any;
  2. Download the definition for jQuery from Definitely Typed

Я рекомендую второй вариант, как вы получите соответствующие проверки компилятора и автозавершения.

Вы можете захватить Definitely Typed definition using NuGet, что делает его очень простым.

Кроме того, вы должны помнить, чтобы включать в себя фактический скрипт во время выполнения (и в правильном порядке, то есть тег сценария ниже должен появиться, прежде чем пытаться использовать JQuery) ...

<script src="jquery.js"></script> 
<script src="a-script-that-depends-on-jquery.js"></script> 

справочные комментарии - это просто инструмент времени проектирования/компиляции и не гарантируют, что эти сценарии будут загружены при запуске программы.

0

Можете ли вы использовать chutzpah_reference вместо ссылки здесь?

Alternate Reference Syntax

The reference syntax is also used by the TypeScript compiler for referencing files. This can cause an issue since Chutzpah expects you to reference your implementation files and TypeScript excepts you to reference your definition files. To mitigate this issue you can use a Chutzpah specific version of the reference command:

/// <chutzpah_reference path="someDependency.js" /> 

This works the same as the other syntax except that TypeScript (and VS) will ignore it.

От https://chutzpah.codeplex.com/wikipage?title=Chutzpah%20File%20References

Смежные вопросы