【发布时间】:2017-07-17 23:31:05
【问题描述】:
我不确定这个测试哪里出错了。
服务代码:
self.clearMessage = function(interval) {
if (!interval)
interval = 2000;
return $timeout(function() {
return '';
}, interval);
};
规格:
it('clears message', function() {
var result = self.clearMessage();
$timeout.flush();
expect(result).toBe('');
});
我还尝试在测试中触发摘要循环,但没有成功。我以前从来没有遇到过这个问题,因为我通常会在超时块内设置一个外部变量——这对于单元测试来说很好。
在这种情况下,当超时内只有返回时,我收到以下错误:
Expected Promise({ $$state: Object({ status: 1, value: '' }), $$timeoutId: 1 }) to be ''.
编辑/回答
it('clears message', function() {
self.clearMessage().then(function(response) {
expect(response).toBe('');
})
$timeout.flush();
});
【问题讨论】:
标签: javascript angularjs unit-testing jasmine karma-jasmine