2016-04-17 81 views
2

我做了angular2快速啓動項目通過此鏈接:https://angular.io/guide/quickstart。唯一不同的是我在app.component.ts中添加代碼var fs = require('js'),它的工作原理。但是當我爲該組件編寫Jasmine單元測試時,它顯示require is not defined,有誰知道如何解決該問題?茉莉花:要求沒有定義

注意:

我在整個項目中使用打字稿。

我試圖添加節點類型定義,但它不能修復該錯誤。

這裏是我的代碼: 單位tests.html

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html;charset=utf-8"> 
    <title>Ng App Unit Tests</title> 
    <link rel="stylesheet" href="node_modules/jasmine-core/lib/jasmine-core/jasmine.css"> 
    <script src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script> 
    <script src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script> 
    <script src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script> 
    ... 
</head> 
<body> 
<!-- Unit Testing Chapter #1: Proof of life. --> 
<script src="app/app.component.spec.js"></script> 
</body> 
</html> 
+0

請發佈您的規格亞軍的代碼? - 我假設您使用的是specrunner.html ... – KnowHoper

+0

與網站中的unit-tests.html相同,請參閱我的問題中的代碼。 –

回答

0

您將需要包括SystemJS並導入規範。

喜歡的東西:

<script src="~/node_modules/systemjs/dist/system.js" type="text/javascript"></script> 
<script> 
    System.config({ 
     baseURL: '/app' 
    }); 
     System.import('app.component.spec') 
    .then(null, console.error.bind(console)); 
</script> 
+0

是的,我做過。它也不起作用。 –

+0

你可以發佈你的組件代碼嗎?我會爲你創建一個plunk – KnowHoper

+0

這裏是我的plunk:http://plnkr.co/edit/zmmOQSZcRgpbIyifRKxx?p=preview由於某種原因,它不起作用。但在我的應用程序中,我有類似的代碼,它的工作原理,它只在測試時不起作用。 –

0

您的代碼缺少這個關鍵字是打字稿要求所有的類成員。

您的組件改成這樣:

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'my-app', 
    template: '<h1>My First Angular 2 App</h1>' 
}) 
export class AppComponent { 

    constructor() { 
     this.testReq(); 
    } 

    testReq(str: string): string { 
    /* var fs = require('fs'); 
     var str = '123'; 
     return str;*/ 
    } 
} 

我想你在這裏誤解了幾件事情。 FS是用於處理文件系統的節點庫。當你在一個Node進程中時,這個工作非常出色,但在你的例子中你不是。您正在瀏覽器進程中運行,因此您無權訪問任何節點庫。

+0

當然,我有更多的代碼比上面的,例如,我用fs讀取函數testReq中的文件(它們實際上在我的應用程序中工作,只是在Jasmine測試中不工作)。在這個例子中,我簡化了代碼,讓你知道我需要什麼fs。 –