2017-01-08 3 views
0

とのデート、ジャスミン・ノード公式<a href="https://jasmine.github.io/2.2/introduction.html#section-Mocking_the_Date" rel="nofollow noreferrer">documentation</a>に与えられた例のように

describe("Mocking the Date object", function(){ 
    it("mocks the Date object and sets it to a given time", function() { 
     var baseTime = new Date(2013, 9, 23); 

     jasmine.clock().mockDate(baseTime); 
     : 
    }); 
    }); 

をスパイする方法それはjasmine.clock is not a functionが報じています。私は私のプロジェクトで次の依存関係を使用しています

"devDependencies": { 
    "jasmine": "^2.5.2", 
    "jasmine-node": "^1.14.5" 
    } 

また、私はDateオブジェクトをモックしようとしました。しかし、私はブラウザにないノードにいるので、私は見つけません/ windowどのような方法を模擬してください。

答えて

0

私は非公式のジャスミンライブラリを使用していることがわかりました。ジャスミンの最新リリースをサポートするには、 "jasmine-node"ではなく "jasmine-core"を使用してください。しかし、それはまだ日付を模擬することに失敗していた。

私は日付を返す関数を分割しました。その後、

  1. 私は関数をモックできるようにエクスポートしました。私はジャスミンのspyOnを使って、日付機能の動作を模擬しました。
  2. 私はnodejsモジュールのプライベート変数またはメソッドにアクセスするのに役立つnpmライブラリrewireが見つかりました。だから、ちょうど嘲笑のためにそれをエクスポートするのではなく、spyOn日付関数にも使うことができます。
0

まず、jasmine-mockdateをインストールする必要があります。
そして、次のようにテスト:

describe("Mocking the Date object", function() { 
    it("mocks the Date object and sets it to a given time", function() { 
     var baseTime = new Date(2013, 9, 23); 
     jasmine.clock().install(); 
     jasmine.clock().mockDate(baseTime); 

     jasmine.clock().tick(50); 
     expect(new Date().getTime()).toEqual(baseTime.getTime() + 50);   
    }); 
}); 

・ホープこのヘルプ。

+0

リンクNPMのパッケージの状態(強調鉱山): "ジャスミンv1.3のためのモック日_forバージョン2.x、使用jasmine.clock()mockDate()instead._。" – mklement0

+0

私はジャスミンのバージョンを述べたように'jasmine.clock()'が利用できるはずです。 –

関連する問題

 関連する問題