angular.js チュートリアルで、工場テストのこの例を見つけました:
モジュール:
angular.module('omdbModule', [])
.factory('omdbApi', function omdbApiFactory() {
return {
search: function() {
//logic to get data return movieData;
}
}
テスト (2 つの方法で行うことができます: '$provide' を引数として無名関数を渡す:
angular.mock.module(function($provide){
$provide.factory('omdbApi', function(){
return{
search:function(query){
return movieData;
}
}
});
またはオブジェクトリテラルを使用するだけです:
angular.mock.module({
'omdbApi':{
{ search:function(query){
return movieData;
}
}
});
どちらの場合も、ファクトリを取得してすべてのプロパティとメソッドに自動的にアクセスするのではなく、モックで検索関数を再定義する必要がある理由がわかりません。ファクトリ全体をモックで定義するのは、モジュールに実際には存在しない場合に適していると思いますが、モジュールとそのファクトリが既に定義されていて、実際に存在するのになぜこれが行われるのですか?