2016-10-08 13 views
1

は冗談で、このような何かをテストする方法があります:非同期テスト

function hello(callback) { 
    someNonPromiseBasedAPI(callback); 
} 

のような何かがdone()ジャスミン

非同期をテストするための冗談ドキュメントの状態で/ waitsFor()それはPromiseを返す必要がありますが、私はテストに合うように自分のコードを変更したくありません。

答えて

0

ただ、これは単なる'test'でコールバック関数を呼び出す機能をsomeNonPromiseBasedAPIの実装を置き換えるsomeNonPromiseBasedAPI

jest.mock('./path/to/someNonPromiseBasedAPI', (cb)=> cb('test')) 
const cb = jest.fn() 
const result = hello(cb) 
expect(cb).toHaveBeenCalledWith('test') 

をモック。テストでは、スパイを作成してhello関数に渡します。モックが使用され、'test'でスパイを呼び出します。それから、スパイが期待された引数で呼ばれたことをテストしてください。

0

Jestはフードの下でジャスミンを使用していますので、done/done.failコールバックを自由に使用できます。

it('says hello', done => { 
    hello((err, result) => { 
     if (err) return done.fail(err); 
     expect(result).toBe('hello'); 
     done(); 
    }); 
}); 
関連する問題