2

私がテストしているサービスには、この機能があります(たとえば):

doSomething : function(userID,boolean){

                var t = otherService.getSomething();
                var params = somedata;
                var deferred = $q.defer();
                if (boolean){
                    Restangular.one("users",userID).post("copy",params).then(function(data){...

そして、Restangular をスパイして、使用する適切なパラメーター、エンドポイントなどを取得するかどうかを確認したいだけです。

だから私は再角化モックを作りました:

mockRestangular = {
                    one:function(){return this}
                    },



                    post:function(){

                    },
                    all:function(){

                    }
                };
                    },

//also tried:
// one: function(){return {post:function(){}};}


                };

しかし、モックのネストされた投稿にジャスミンスパイを設定することはできません:

spyOn(mockRestangular.one,'post')私は得るpost() method does not exist

関数呼び出しも失敗します

someService.doSomething(params)

postメソッドを見つけることができるからです。

post メソッドを one メソッドにネストする必要があることに注意してください。1つだけをオブジェクトに変換すると、oneメソッドが欠落して失敗します。

明らかな何かが欠けていると思いますが、午前中ずっとこれに気を配っていて、完全に失敗しました

編集:

スパイに追加andCallThrough()すると、すべてのピースが正しい方向に落ち着きました。誰かがいつか探しに来たら、答えを更新します。

4

1 に答える 1