1

testacular/karma から期待される結果を得るために、単体テストをフォーマットするのに少し助けが必要です

beforeEach( inject( function( customService, $httpBackend ){            
         service = customService;
         $http = $httpBackend
;}))

it('should make a default call upon initialization',function(){

var modalObj = {
                 "id": null,
                 "contentId": null,
                 "isActive":false,
                 "websiteId":2000,
                 "createdByUserName":"haselton",
                 "text":"another micro",
                 "tags":[],
                 "something random":null,
                 "something else":3
              },
              requestObj = {"isActive":false,"tags":[],"websiteId":2000,"createdByUserName":"haselton","text":"another micro"},
            mbObj = {};


         $http.whenPOST('/url/of/call', [requestObj]).respond(
             {
                 "id": 40,
                 "contentId": null,
                 "isActive": false,
                 "creationDate": "05/22/2013 14:24:14 PDT",
                 "lastModifiedDate": "05/22/2013 14:24:14 PDT",
                 "lastModifiedStatusDate": null,
                 "websiteId": 2000,
                 "createdByUserName": "haselton",
                 "text": "another micro",
                 "tags": []
             }
         );

次に、呼び出しを生成して約束を返すサービスがあります。テストの残りの部分は次のとおりです。

         mbObj = service.createEntry(modalObj); // returns a promise
         mbObj.then(function(data){
             console.log(data);
             expect( angular.isNumber(data.id)).toBe(true);
             expect(data.isActive).toBe(false);
             expect(data.tags).toBe( 0 );
             expect(data.websiteId).toBe(2000);
             expect(data.createdByUserName).toBe("haselton");
             expect(data.text).toBe("another micro");
         }); 

         $http.flush();

});

通過する代わりに、満たされた promise 内の console.log は Angular リソースをログアウトします。スクリーンショットは次のとおりです。 ここに画像の説明を入力

ここで私が間違っていることについてのアイデアはありますか? ありがとう!

4

1 に答える 1

0

dataリクエストに対して解決される引数はmodalObj配列であるため、添え字を使用して実際のデータを取得します。

console.log(data[0], data[1], data[2], data[3] , data[4], data[5], data[6], data[7], data[8], data[9]);
于 2013-12-10T19:51:08.167 に答える