첫째을 사용하여 SPA에 대한 단위 테스트를 설정하려고
를 사용하여 모듈을로드하지, 다음 시험은 카르마에서 잘 실행 :
/// <reference path="../../definitions/jasmine/jasmine.d.ts" />
/// <reference path="../../src/app/domain/core/Collections.ts"/>
define(["app/domain/core/Collections"], (collections) => {
describe('LinkedList',() => {
it('should be able to store strings for lookup',() => {
var list = new collections.Collections.LinkedList<string>();
list.add("item1");
expect(list.first()).toBe("item1");
});
});
});
그러나 collections
은 any
이므로 형식 선언에 사용할 수 없으므로 테스트를 작성할 때 intellisense 및 기타 등을 놓치고 있습니다. 좋지 않다! 내가 더 타이프 라이터 친화적 인 형식으로 테스트를 다시 쓰려고하면
문제가 발생합니다 :
/// <reference path="../../definitions/jasmine/jasmine.d.ts" />
/// <reference path="../../src/app/domain/core/Collections.ts"/>
import c = require("./../../src/app/domain/core/Collections");
describe('LinkedList',() => {
it('should be able to store strings for lookup',() => {
var list: c.Collections.LinkedList<string> = new c.Collections.LinkedList<string>();
list.add("item1");
expect(list.first()).toBe("item1");
});
});
이 나는 등 편리한 인텔리 내 타입 정보를 잘 얻을 컴파일하지만 지금 카르마가 발생합니다 오류.
There is no timestamp for /base/src/app/domain/core/Collections!
Failed to load resource: the server responded with a status of 404 (Not Found)
(http://localhost:9876/base/src/app/domain/core/Collections)
Uncaught Error: Script error for: /base/src/app/domain/core/Collections
내가 지금 여기를 거 그만 해요,하지만 도움이 될 경우 :
없이 다음과 같은 오류 메시지에 표시된의 .js 접미사를, 모듈 을로드하려고 밝혀 필자의 업보 설정 파일, 테스트 메인 등을 제공하게 된 것을 기쁘게 생각합니다. 그러나 제 희망은 누군가가 전에 정확한 문제를 겪었고 올바른 방향으로 나를 지적 할 수 있었을 것입니다.
내 타이프립트는 AMD 플래그로 컴파일됩니다.
필자가 require-call을 사용하지 않으면 타이프 스크립트 컴파일러가 파일을 찾지 못합니다. 또한,/base/src/app/domain/core/Collections.js는 카르마 러너 서버에있는 파일의 실제 위치입니다. 즉, 브라우저에 입력하면 404 : http : // localhost : 9876/base/src/app/domain/core/Collections.js가 생성되지 않습니다. 그러면 require.js가 파일의 .js 접미사를 생략하게 만드는 이유는 무엇입니까? – havardhu