如何确保茉莉花的expect()在测试中执行

时间:2013-04-03 06:57:10

标签: javascript angularjs jasmine

我对角应用有这样的测试:

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(),否则会失败。

1 个答案:

答案 0 :(得分:0)

试试这个:

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

那应该确保您的测试没有未访问过的期望,并且还应验证是否已调用所有预期的服务器调用。

您可以在Angular $backend docs

上找到更多信息