mardi 26 mai 2015

How to specify http response order in angular js tests?

A controller makes 2 calls to a remote http location to get data. When data comes a procedure is called. When both requests return data, then data merging is done and some aggregation is performed.

The purpose of a unit test would be to test if the controller works as expected no matter the order of responses.

it("downloads all data and combines it", function() {
        ...
        $httpBackend.expectGET(responsePerDomainQuery).respond(
            { result: [ { result: 2 }, { result: 3 } ] });
        $httpBackend.expectGET(responsePerTrQuery).respond(
            { result: [{ result: 1 }, { result: 4 }] });
        $controller("Ctrl", { '$scope': $scope });
        $httpBackend.flush();
        ... some expectations ...
}

The test passes but it does not guarantee that any order of successfully responding requests will not break the controller's logic. How can this be achieved?

Aucun commentaire:

Enregistrer un commentaire