1
我是新来茉莉花测试,我无法得到一个关于如何我可以单元测试我的控制器的完整画面。我的控制器做了一些任务,我基本上想要测试做以下事情:茉莉花测试的嘲笑服务?
- 它调用的模拟服务。
- 模拟范围内的数据。
- 测试控制器中特定方法的行为。
- 验证:服务已被调用一次。
- 验证:服务传递了正确的数据。
我将需要尽可能完整的例子如何编写一个测试,以及用什么声明来模拟这些方法。问题
控制器的方法是这样的:
.controller('ProjectConfigurationCtrl', function($scope, $routeParams, InfraService, ProjectConfigurationService) {
// some pre-init...
$scope.clickUpdate = function() {
if ($scope.projectData.Id === 0) {
ProjectConfigurationService.save(angular.toJson($scope.projectData), function(project) {
$scope.projectData = project;
$scope.newproject = false;
$scope.info = "Project " + project.ProjectName + " created successfully.";
}, function() {
$scope.info = "Project " + $scope.projectData.ProjectName + " can not be created: server error.";
});
} else {
ProjectConfigurationService.update(angular.toJson($scope.projectData), function() {
$scope.info = "Project " + $scope.projectData.ProjectName + " updated successfully.";
}, function() {
$scope.info = "Project " + $scope.projectData.ProjectName + " can not be updated: server error.";
});
}
我想看看是否ProjectConfigurationService.save/update被称为一次,并检查哪些抵达这些调用作为参数。我想嘲笑服务返回信息。调用之后,我想检查$ scope.newproject,$ scope.info等,看看里面有什么。