我正在使用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
and 上放置断点,点击 the然后点击 the ,因此失败。ns.busy.hide()
_logoutSuccess
jasmine
expect
_logoutSuccess
spyOn
正如我所说,代码正在运行,我只想知道如何为它编写测试。我已经研究过这个jasmine
done()
功能,但我不确定在这种情况下如何使用它(或者即使它是一个解决方案)。
谢谢