2016-08-30 6 views
1
angular.module('myApp').factory('someService', function(){ 
    var foo = {}; // can not get access to this variable 

    function setData(data){ 
     foo.data = data; 
    } 

    function getData(){ 
     return foo.data; 
    } 

    return { 
     getData: getData, 
     setData: setData 
    } 
}) 

この2つの関数をテストし、ローカル変数からデータを取得する方法を教えてください。角度サービスで変数をテストする方法

describe('someService', function() { 
    var someService, 
     foo ; 

    beforeEach(module('myApp')); 
    beforeEach(inject(function (_someService_) { 
     someService= _someServicee_; 
    })); 

    it('should return bundle id', function() { 
     expect(someService.setData('test')) // foo.data toBe 'test' 
    }); 
}); 

foo varのサービスへのアクセス方法

答えて

0

fooをプライベート変数にしたので、getData関数以外の手段で変数の値を取得する場合は、独自のデザインを中断しようとしています。

setData関数を使用して設定したものがgetData関数によって返されるものであることをテストしようとしているので、APIをテストして特定のあなたのテストを脆弱にする内部実装。

getData関数が使用されていないため、getData関数からパラメータを削除する必要があります。

関連する問題