私はamplifyjs
AJAXリクエストに使用しています。それはうまくいっています。私はjasmine
コードをテストするために使用しています。成功とエラーのコールバックをテストする最善の方法は何だろうと思っています。の後にコールバックが実行されるため、私が書いた現在の単体テストは機能しませんjasmine
expect
。テスト中のコードは次のとおりです。
function logout() {
ns.busy.show();
amplify.request({
resourceId: 'logout',
success: _logoutSuccess
});
};
function _logoutSuccess(response) {
ns.busy.hide();
};
リクエストが返されたときに関数が呼び出されることを検証する単体テストは次のとおりです。
it('should hide busy when successful', function () {
// arrange
ns.busy = { show: function () { }, hide: function () { } };
spyOn(ns.busy, 'hide');
amplify.request.define('logout', function (settings) {
settings.success({});
});
// act
ns.accountLogoutViewModel.logout();
// assert
expect(ns.busy.hide).toHaveBeenCalled();
});
注:ns
は、アプリケーションの名前空間を保持する単なる変数です。関数のexpect
と にns.busy.hide()
ブレークポイントを配置すると、 にヒットし、次に にヒットするため、 は失敗します。_logoutSuccess
jasmine
expect
_logoutSuccess
spyOn
私が言うように、コードは機能しています。そのためのテストを作成する方法を知りたいだけです。関数を調べましたがjasmine
done()
、この状況での使用方法がわかりません (または、それが解決策であっても)。
ありがとう