0

私は何かが恋しいと思います。私のテストが機能しない理由を理解しようと、しばらく時間を費やしました。

コード。

angular.module('services')
    .factory('UserPreferencesService', ['$resource', function ($resource)
    {
        return $resource('/rest/user-preferences/:id', {},
        { getById: { method: "GET", params: { id:'@id'}} });

    }
]);

テスト:

it('should get by Id', function() {
    //given
    var preferences = {language: "en"};

    httpBackend.whenGET('/rest/user-preferences/1').respond(preferences);

    //when
    service.getById( {id:1} ).$promise.then(function(result) {

        console.log("successssssssssssssssssssssssssssssssssssss");

     //then
     expect(result).toEqual(preferences);
    }, function() {
        console.log("something wrong");
    })
});

それは決してトリガーしません:「successssssssssssssssssssssssssssssssssss」。

私は何を取りこぼしたか?

4

2 に答える 2

0

これに、同じ問題があったことを追加したいと思いますが、次のようにコールバックを使用していました。

 httpBackend.whenGET('/rest/user-preferences/1').respond(function(method, url, data) {
                //do something with method, url, data...
                return 200;
            });

を に置き換えるまでreturn 200、ヒットすることはありませんでしたreturn [200]。どうやら、返すには配列が必要です。

この情報は、ドキュメントでより明確にすることができると思います。

于 2018-06-28T09:11:40.257 に答える