2016-04-17 8 views
2

私はこのリンクを通してangular2クイックスタートプロジェクトを行いました:https://angular.io/guide/quickstart。唯一の違いは、app.component.tsにコードvar fs = require('js')を追加することです。しかし、私はそのコンポーネントのジャスミンユニットテストを書くとき、それはrequire is not definedを示し、誰も問題を解決する方法を知っていますか?ジャスミン:要求が定義されていません

注:

私は自分のプロジェクト全体でtypescriptを使用しています。

ノード型定義を追加しようとしましたが、バグを修正しません。あなたはSystemJSを含めると、あなたのスペックをインポートする必要があります ユニット-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

は、ここに私のコードです。以下のような

何か:

<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

ここは私の嵐です: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

もちろん、私は上記のコードよりも多くのコードを持っています。たとえば、関数testReq内のファイルを読み込むためにfsを使用しました(実際には私のアプリケーションで動作しますが、ジャスミンテストでは機能しません)。この例では、コードを簡略化して、どこにfsが必要かを教えてくれました。 –

関連する問題