4

我对角度应用程序进行了这样的测试:

it("should return false if all products loaded", function () {
    $httpBackend.flush();
    scope.loadNextProducts(15).then(function (isThereMoreToLoad) {
        expect(isThereMoreToLoad).toBe(false);
    });
    scope.$apply();
});

如果我忘记写以太$httpBackend.flush();scope.$apply();测试将永远无法到达expect()部分并且测试将成功。

有没有办法确保茉莉花测试执行了expect(),如果没有,那么它应该失败?

例如指定预期的it()数量expect(),或者告诉 jasmine 每个测试应该至少执行一个,expect()否则它应该失败。

4

1 回答 1

0

尝试这个:

  afterEach(function() {
    $httpBackend.verifyNoOutstandingExpectation();
    $httpBackend.verifyNoOutstandingRequest();
  });

那应该,嗯,验证你的测试没有没有被访问过的期望,它还应该验证你所有的预期服务器调用都被调用了。

您可以在Angular $backend 文档中找到更多信息

于 2013-04-04T15:21:20.830 回答