2017-07-11 15 views
0

私のユニットテストで次のエラーが発生しています。必要に応じてdashboard.service.jsファイルを投稿できます。 DashboardService.getHostDetails()は、spyOn()を使用しようとしているため、処理しようとしている約束を返します。角度単位テスト - 前関数またはスペックでスパイを作成する必要があります

Error: Spies must be created in a before function or a spec 

dashboard.spec.js

import DashboardModule from './dashboard.module' 
import DashboardService from './dashboard.service' 

let dashboardService, 
    _$translateProvider, 
    _$q; 

describe('DashboardService',() => { 
    beforeEach(angular.mock.module(DashboardModule)); 

    beforeEach(() => { 
    angular.mock.module({ 
     $translateProvider: jasmine.createSpyObj('$translateProvider', 
     ['translations', 'preferredLanguage'] 
    ), 
     $translate: jasmine.createSpyObj('$translate', 
     ['use'] 
    ) 
    }); 
    }) 

    beforeEach(inject(($translateProvider, $q, DashboardService) => { 
    _$translateProvider = $translateProvider; 
    _$q = $q; 

    dashboardService = DashboardService; 
    })); 

    beforeEach(() => { 
    _$translateProvider.translations('en', {}); 
    _$translateProvider.preferredLanguage('en'); 

    const promise = { then: jasmine.createSpy() }; 
    spyOn(dashboardService, 'getHostDetails').and.andReturn(promise); 
    }); 

    it('should load the host information',() => { 
    const hostDetails = dashboardService.getHostDetails(); 
    console.log(hostDetails); 
    hostDetails.then((res) => { 
     console.log(res); 
    }); 
    }); 
}); 

答えて

0

だから、問題はモカ、チャイとジャスミンがすべて使用と競合されていたということでした。ジャスミンのみを使用して問題を解決しました。結果としてkarma.conf.jsが更新されました。

関連する問題