使用$ timeout测试Angular + Jasmine

时间:2017-01-28 07:58:12

标签: angularjs jasmine

我有一个运行角度分量的茉莉花测试:

it("has correct MWF classes", function(done) {
  let element = $compile(markup)(localScope);
  localScope.$apply();
  setTimeout(function() {
    expect(element.html().indexOf("xxx")).not.toEqual(-1);
  }, localScope.selectTimeout);
});

"标记"有一些自定义组件,该组件有$ postlink,我有一个代码在

this.$timeout(() => {xxxx }, 0);

当我运行测试时,我发现测试运行时没有调用xxxx代码。

为什么$ timeout下的任何代码都没有在测试中执行?该组件在html中运行良好。

1 个答案:

答案 0 :(得分:0)

测试时使用static List<Model<T>> Get<T>(string value) where T:Model<T> { switch (value) { case "ROLE": return GetRoles().Cast<Model<T>>().ToList(); break; } return new List<Model<T>>(); } 刷新待处理超时任务的队列。

您可以使用$timeout.flush()来验证是否没有需要刷新的待处理任务。