2016-05-30 4 views
0

ジャスミンスパイの作成に問題があります。電流の結合を伴う角度1.5成分:&。私は、通知関数内のページング関数が呼び出されたときを検出したい。ジャスミンスパイオン(角度成分あり)

テスト

beforeEach(inject(function ($rootScope, _$componentController_) { 
    model = { 
     min: 1, 
     max: 10, 
     current: 1, 
     notify: function() { 
      return function paging(page){console.log(page);} 
     } 
    }; 
    $componentController = _$componentController_; 
})); 

it('will not page forward on page 10', function() { 
    model.current = 10; 

    pager.pageForward(); 

    expect(model.current).toBe(10); 
}); 

コンポーネントはこの場合

model.pageFoward() { 
    model.notify()(model.current); 
} 
+0

model.pageFowardは関数ではありません。そして、あなたは、「フォワード」ではなく「フォワード」を意味すると思います。あなたの説明を言い換えることができればうれしいですが、達成したいことがはっきりしていません。 – fodma1

+0

質問を拡張しました – Paul

答えて

0

スニペット、あなたはスパイを作成し、model.notifyにそれを返す必要があり、上のスパイする必要はありません。試してみてください:

var notifyReturnFunction;  

... 
notifyReturnFunction = jasmine.createSpy('notifyReturnFunction'); 
model = { 
    min: 1, 
    max: 10, 
    current: 1, 
    notify: function() { 
     return notifyReturnFunction; 
    } 
}; 
... 

今、あなたはそれが呼び出されていることを主張することができます。

it('will not page forward on page 10', function() { 
    model.current = 10; 

    pager.pageForward(); 

    expect(model.current).toBe(10); 
    expect(notifyReturnFunction).toHaveBeenCalled(); 
    // Or 
    expect(notifyReturnFunction).toHaveBeenCalled(model.current); 
}); 
+0

あなたのソリューションは有望そうですが、正しく実装していないか、見つからないものがあります。私は試してデバッグします。私はdevtoolsでreturn notifyReturnFunctionの実行を見ることができますが、期待通りに失敗します。私はあなたが私が何を思いついているかを知らせます。助けてくれてありがとう!!!! – Paul

+0

私はそれを理解した、私はそれを汚していたいくつかの論理を持っていた。あなたのコードはうまくいった!ありがとう – Paul