Я работаю в приложении angularjs, которое кто-то написал. Я был с одной стороны этого приложения, а другой, добавляя к нему функциональность.Есть ли у меня тестовое приложение для углов?
Я новичок в angularjs, а также новичок в модульном тестировании. Я написал более 50 единичных тестов для этого приложения, и, насколько я могу судить, главное преимущество в этом заключается в нахождении несоответствий в коде и их фиксации, а затем в написании модульного теста.
Моего угловое применение в основном состоит из функций, как это внутри одного контроллера:
$scope.getDataDoSomethingWithIt = function()
{
var url = $scope.endpoint + "my_hard_coded_url";
methodInAnotherFileThatMakesTheXHRRequest($http, url, "PATCH", mainData.adminToken, mainData.userToken, null, function(response) {
if (response.status == 200){
$scope.callSomeOtherMethod();
$scope.addMessage = "Successfully did something.";
$scope.isMessage = true;
}else{
$scope.addError = "Whoops! There was an error";
$scope.isError = true;
}
});
};
Я в полной растерянности относительно того, как осмысленно написать модульный тест против метода, как это. В основном потому, что $scope.endpoint
установлен с $watch
, когда mainData.userToken
изменен.
Это прекрасный пример того, что один из моих модульных тестов выглядят как сейчас:
describe('getDataDoSomethingWithIt', function() {
it('addMessage should not equal null and addError should be empty string.', function() {
var controller = $controller('myController', { $scope: $scope });
$scope.getDataDoSomethingWithIt();
expect($scope.addMessage).not.toBe(null);
expect($scope.addError).toBe('');
});
});
Какую цель это служит? Что делает проверяемое приложение угловой? Если это плохой единичный тест, что будет лучше?