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 リソースをログアウトします。スクリーンショットは次のとおりです。
ここで私が間違っていることについてのアイデアはありますか? ありがとう!