問題タブ [angular2-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - MockBackend を使用して .map を呼び出す関数をテストする
HTTP リクエストを行うサービスの単体テストを作成しようとしています。
リクエストのHttp.get()
後に.map()
. モックされたバックエンドがエラーではないものを返すのに苦労しています.map()
。私が得ているエラーは次のとおりです。
私はずっとこの記事をメインガイドとして使用してきました。
サービス関数からを削除すると、.map()
エラーは発生しません。.map()
モックされた応答に呼び出し可能な関数を持たせるにはどうすればよいですか?
注: 現在 RC.4 を使用しています。
これが私のサービスです:
MockBackend
そして、これらのテストのバックエンドをモックするために およびその他の関連ライブラリを使用している私の仕様ファイルは次のとおりです。
asynchronous - 非同期 PipeTransform をテストする
環境
私は基本的な を持っていますがPipeTransform
、それが非同期であるという事実を期待しています。なんで?私は独自の i18n サービスを持っているため (解析、複数形化、およびその他の制約のため、独自に行いました)、次の値を返しますPromise<string>
。
このパイプはうまく機能します。なぜなら、遅延呼び出しは最初のものだけだからです (I18nService
遅延読み込みを使用し、キーが見つからない場合にのみ JSON データをロードするため、基本的に、最初の呼び出しは遅延し、他の呼び出しは即時ですが、それでもまだです)非同期)。
問題
を使用してこのパイプをテストする方法がわかりませんJasmine
。コンポーネント内で動作しているため、動作することがわかっていますが、ここでの目標は、ジャスミンを使用してこれを完全にテストすることです。このようにして、CI ルーチンに追加できます。
上記のテスト:
I18nService
によって与えられた結果が非同期であるため、戻り値が同期ロジックで定義されていないため、失敗します。
I18n パイプ テストは I18n.get を呼び出すことができます。失敗した
「テスト値」は undefined であると予想されます。
編集:それを行う1つの方法は使用することですが、どこにでもsetTimeout
追加するのを避けるために、よりきれいなソリューションが必要です。setTimeout(myAssertion, 100)
angular - AngularFire のプロバイダーはありません
AngularFire2 を使用しています。テストの実行中にこの例外が発生しました。
これは私のテストがどのように見えるかです:
AngularFire は関数なので注入できないのではないでしょうか?
node.js - カルマなしでmochaを使用してnodejsでAngular2パイプをテストする方法
カルマなどを含めずに、純粋にnodejs環境でAngular2パイプをテストできるようにしたいと思います.
typescript ファイルを mocha のテスト スイートとして使用することが可能です。
https://templecoding.com/blog/2016/05/05/unit-testing-with-typescript-and-mocha/
しかし、私が持っているとき、import {Pipe} from '@angular/core'
それは私に与えます
テストファイルに書き込んrequire('reflect-metadata')
でも、同じエラーで壊れます。
Angular には内部的に次のチェックがあります。
そして、私が実際にグローバルオブジェクトに持っているreflect-matadataを要求した後Reflect
、それでも機能しません...
とにかく、mocha を使用して nodejs で Angular パイプ purley をテストする方法はありますか?
アプリをバンドルするために webpack を使用しているため、テスト ファイルで必要なファイルは次のようになります。
angular - routerLink を使用した Angular 2 単体テスト コンポーネント
routerLink
コンポーネントを angular 2 final でテストしようとしていますが、コンポーネントがディレクティブを使用しているため、エラーが発生します。次のエラーが表示されます。
「a」の既知のプロパティではないため、「routerLink」にバインドできません。
これはListComponent
テンプレートの関連コードです
そして、これが私のテストです。
同様の質問に対するいくつかの回答を見ましたが、自分に合った解決策が見つかりませんでした。
testing - angular2 テスト:「input」の既知のプロパティではないため、「ngModel」にバインドできません
control の angular2 双方向バインディングをテストしようとしていinput
ます。エラーは次のとおりです。
app.component.html
app.component.ts
app.component.spec.ts
angular - Angular2 テスト サービス -- 未定義のサービス
こんにちは、 https ://developers.livechatinc.com/blog/testing-angular-2-apps-dependency-injection-and-components/ の手順に従って、サービスの単体テストを作成しようとしていますが、エラーが発生し続けます。
サービステストはこちら
これの console.log は空のオブジェクトであり、this.kibanaDataServices は未定義です。kibana-data-services と kibana-data-services.spec.ts (このテスト ファイル) が同じフォルダーにあるため、指定しているパスは正しいため、何が問題なのかわかりません。
私が具体的に得るエラーは次のとおりです。
更新:「this」を使用しないと、「it」ステートメントで定義されていないというエラーが発生します
angular - Angular 2.0.0 ルーターでコンポーネントをテストする
次のコンポーネントがあるとします。
単体テストを作成しようとしています:
エラーメッセージは次のとおりです。
どんな助けでも大歓迎です!!