Jasminejs-spies
JasmineJS-スパイ
ジャスミンスパイは、その名前が示すものとまったく同じことを行う別の機能です。 これにより、アプリケーションの関数呼び出しをスパイできます。 Jasmineで利用可能なスパイテクノロジーには2つのタイプがあります。 最初の方法論は* spyOn()を使用して実装でき、2番目の方法論は createSpy()*を使用して実装できます。 この章では、これら2つの方法論について詳しく学習します。
spyOn()
spyOn()はJasmineライブラリに組み込まれているため、特定のコードをスパイできます。 新しい仕様ファイル「spyJasmineSpec.js」と、「spyJasmine.js」という名前の別の js ファイルを作成しましょう。 これら2つのファイルのエントリは次のとおりです。
SpyJasmine.js
SpyJasmineSpec.js
上記のコードでは、personオブジェクトに「Hello world」と言うようにしたいのですが、出力リテラル「Hello world」を提供するには、personオブジェクトに辞書オブジェクトと相談する必要があります。
実際に hello および world 関数の機能を模倣するspyOn()関数を使用したことがわかるSpecファイルを見てください。 したがって、実際に関数を呼び出すのではなく、関数呼び出しを模倣しています。 それがスパイの専門です。 上記のコードは、次の出力を生成します。
createSpy()
スパイ機能を取得する別の方法は、createSpy()を使用することです。 次のコードを使用して、2つの js ファイルを変更しましょう。
SpyJasmine.js
SpyJasmineSpec.js
specファイルを見てください。 Person オブジェクトの* getName11()を呼び出しています。 この関数は *spy Jasmine.js のpersonオブジェクトには存在しませんが、エラーは発生していないため、出力は緑で正です。 この例では、createSpy()メソッドは実際にgetName11()の機能を模倣しています。
上記のコードは以下の出力を生成します。