我正在测试我的一个指令,我得到以下错误
Error: No deferred tasks to be flushed
我需要测试的代码是在$timeout内
$timeout(function () { $window.doStuff(); });
因此,当我想检查doStuff是否被调用时,我做了
$timeout.flush(); expect($window.doStuff).toHaveBeenCalled();
但是,现在我需要测试一种我不希望调用doStuff的情况.所以我做了:
$timeout.flush(); expect($window.doStuff).not.toHaveBeenCalled(); // Notice the not here!!
但是,因为没有调用$timeout,$timeout.flush()给了我这个错误.
所以问题是,测试这种情况的首选方法是什么?