2015-06-29 12 views
11

का उपयोग कर यूनिट टेस्ट मैं https://angular.io/docs/js/latest/quickstart.html से helloworld एप्लिकेशन के लिए इकाई परीक्षण लिखने के लिए कर्म, जैस्मीन, टाइपस्क्रिप्ट का उपयोग कर रहा हूं।टाइपस्क्रिप्ट और कर्म

///<reference path="../typings/jasmine/jasmine.d.ts"/> 

import { 
    MyAppComponent 
} from '../spray1'; 

describe("name is Alice",() => { 
    var comp = new MyAppComponent(); 

    it("verify name",() => { 
     expect(comp.name).toBe("Alice"); 
    }); 
}); 

tsc (के साथ "--module commonjs") में इस परीक्षण कोड transpiles:

नीचे परीक्षण कोड है

///<reference path="../typings/jasmine/jasmine.d.ts"/> 
var spray1_1 = require('../spray1'); 
describe("name is Alice", function() { 
    var comp = new myAppComponent_1.MyAppComponent(); 
    it("verify name", function() { 
     expect(comp.name).toBe("Alice"); 
    }); 
}); 

कर्म इकाई परीक्षण चलाने के लिए विफल रहता है:

Uncaught Error: Module name "../myAppComponent" has not been loaded yet for context: _. Use require([]) http://requirejs.org/docs/errors.html#notloaded at /Users/spray1/web2/node_modules/requirejs/require.js:141

Chrome 43.0.2357 (Mac OS X 10.10.3): Executed 0 of 0 SUCCESS (0 secs/0 secs)

यदि मैं "- मॉड्यूल एएमडी" के साथ टीएससी का उपयोग करता हूं, तो पारदर्शी परीक्षण कोड है:

define(["require", "exports", '../spray1'], function (require, exports, spray1_1) { 
    describe("name is Alice", function() { 
     var comp = new spray1_1.MyAppComponent(); 
     it("verify name", function() { 
      expect(comp.name).toBe("Alice"); 
     }); 
    }); 
}); 

"कर्म शुरू परीक्षण/karma.conf.js" transpiled js फ़ाइलों पर त्रुटि नीचे फेंक दिया:

Uncaught Error: Mismatched anonymous define() module: function (require, exports, spray1_1) { describe("name is Alice", function() { var comp = new spray1_1.MyAppComponent(); it("verify name", function() { expect(comp.name).toBe("Alice"); }); }); } http://requirejs.org/docs/errors.html#mismatch at /Users/spray1/web2/node_modules/requirejs/require.js:141 Chrome 43.0.2357 (Mac OS X 10.10.3): Executed 0 of 0 ERROR (0.04 secs/0 secs)

जैसा कि आप देख, मैं मुसीबत यह किसी भी तरह से काम करने के लिए है (--module commonjs/एएमडी)। जाने का सही तरीका और इसे कैसे काम करना है? किसी भी मदद की सराहना करें!

+0

आप फ़ाइलों का संदर्भ कैसे दे रहे हैं? क्या आप एकाधिक स्क्रिप्ट टैग का उपयोग कर रहे हैं? – Fenton

+0

टाइपस्क्रिप्ट और उनके संबंधित टेस्टकेस को संकलित करने और चलाने के लिए गल्प का उपयोग करें। अधिक जानकारी के लिए https://medium.com/@bojzi/anatomy-of-a-large-angular-application-f098e5e36994#.mmfb9jtml पढ़ें। – Ajay

उत्तर

1

तो, आपके द्वारा प्रदान किया गया लिंक क्विकस्टार्ट के जावास्क्रिप्ट संस्करण के लिए है, लेकिन ऐसा लगता है कि आप टाइपस्क्रिप्ट का उपयोग कर रहे हैं।

मैं TypeScript version of the quickstart documentation पर विचार करने का सुझाव दूंगा। इसमें tsconfig.json फ़ाइल है जो उचित संकलन लक्ष्य प्रदान करती है:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 
संबंधित मुद्दे