1

User リソースの宣言は次のようになります。

factory('User', function($resource) {
    return $resource('/api/user/:userId.json', {}, {
        put: {method:'PUT', params: {userId:'@id'}},
    });
})

ご覧のとおり、PUT メソッドの -default- パラメータはリソース内の id 属性です。

テストしたい場合:

httpBackend.expectPUT('api/user/1.json').respond(200);
userResource.put();
httpBackend.flush();

テストでエラーが発生し続けます。生成される実際の URL は「api/user/.json」です。id 属性は URL に含まれていません。

モック オブジェクトに id 属性を指定していないので、それは理にかなっています。やり方がわからないので指定しませんでした。

前もって感謝します。

4

1 に答える 1

3

パスは「/」で始まる必要があり、コードで生成されたものとパスを一致させるために ID を渡す必要があります。URL の一致は文字列の一致であるため、ヒットすると予想される URL が生成されたものとまったく同じであることを保証する必要があります。

httpBackend.expectPUT('/api/user/1.json').respond(200);
userResource.put({id:1});
httpBackend.flush();
于 2013-09-06T14:20:37.457 に答える