問題タブ [testbed]
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 - JSPM と testbench と説明のつかない "testing.js" の出力
私たちは数日間髪を引っ張っていますが、実際の問題を把握することはできません. コード カバレッジを拡大するためにテストベンチを作成したかったのですが、これは予想したほど簡単ではありませんでした。
正しいゾーン ファイルを含めた後、Angular から QuickStart を調べたところ、TestBed.initTestEnvironment を呼び出す必要があることがわかりました。インポートしたパラメーターが必要です。
ただし、カルマ (ジャスミンを使用) を介してこれを実行しようとするとすぐに、404 に遭遇します。
「jspm_packages/npm/@angular/compiler@2.3.0/testing.js」を見ると、間違った情報が含まれていることがすぐにわかりました。
期待される代わりに:
これを手動で修正すると、すべてが完全に機能します。私の質問: JSPM や誰かが間違った testing.js ファイルを生成するのを防ぐにはどうすればよいですか?
私たちの考えは、何らかの理由で、jspm が compiler-testing.umd.js ファイルをフォルダーと見なし、それに /index を追加するというものです。
* config.js 経由で角度ファイルを含めました: *
unit-testing - TestBed: モジュールを介してインポートするとコンポーネントがコンパイルされない
現在、html 内で別のコンポーネント タグを使用するコンポーネントの単体テストのセットを作成しようとしています。
ただし、この他のコンポーネントをコンパイルできないようです。NO_ERROR_SCHEMA、1-3 beforeEach'es を使用していくつかのアプローチを試しました。機能した唯一のアプローチは次のようになります
これはベスト プラクティスの方法とは思えず、各ブロックの前の目的をいくらか無効にします。モックする方法を調べてみましたが、overridecomponent 関数がどのように機能するか、または一般的にジャスミンでモックがどのように機能するかを説明するリソースを見つけることができません。
rangle.io のいくつかのビデオを見ると、彼らは beforeEach ブロックを次のように記述しています。
これにより、bm-panel コンポーネントの TemplateUrl をコンパイルできません。また、モジュールではなくコンポーネントを直接宣言しようとしましたが、効果がありません。
PanelContainerComponent (bm-panel) は AssignmentFormModule 内のモジュールを介してインポートされますが、これにより compileComponent はそれをコンパイルできなくなりますか?
overrideComponent が可能な解決策である場合、私がそれをどのように使用するかを誰かが説明してくれますか?