2015-07-10 95 views
0

我有一個使用業力的單元測試的問題。Karma Angular.js單元測試expectPUT

$httpBackend.expectPUT(envConfig.restUrl + 'customers/1').respond(200); 
    it('should update"customer details" model', function() { 
     expect(scope.customerDetails).toBeUndefined(); 
     $httpBackend.flush(); 

和響應:

Error: Unsatisfied requests: PUT undefinedcustomers/1 
at Function.$httpBackend.verifyNoOutstandingExpectation 
+0

是否定義了'envConfig.restUrl'? –

+1

沒有問題 - 你期待PUT調用,但永遠不會發生 - '$ httpBackend.flush()'試圖刷新所有的請求,但沒有掛起的請求。 –

+0

@KrzysztofSafjanowski看看正在請求的URL =>'PUT undefinedcustomers/1' –

回答

0

你沒有定義envConfig.restUrl

根據@KrzysztofSafjanowski評論,你也沒有調用一個函數,它可能會執行PUT請求或手動執行該操作。將其更改爲whenPUT可能會修復:

$httpBackend.whenPUT(envConfig.restUrl + 'customers/1').respond(200); 
    it('should update"customer details" model', function() { 
     expect(scope.customerDetails).toBeUndefined(); 
     $httpBackend.flush(); 
+0

它被定義。 expectGET測試成功 – kret

+0

@ kret否 - 它沒有被定義 - 顯示更多/完整的測試代碼,所以我們可以嘗試找到錯誤來源 –

+0

好的,我應該把函數調用放在'it'部分嗎? – kret

相關問題