我是 AngularJs/NodeJs 世界的新手,所以如果这对某些人来说是一个基本问题,请原谅。
简而言之,我有两个控制器,第一个控制器$broadcast
一个“Id”,第二个控制器使用该 ID 获取该 Id$on
然后将该 Id 传递给中间人service
,这使得$http
ajax 调用并返回一个Book
目的。
如何使用 Jasmine 对 $scope.broadcast、$scope.$on 进行单元测试
第一个Ctrl
.controller('firstCtrl', function($scope, ...){
$scope.selectGridRow = function() {
if($scope.selectedRows[0].total !=0)
$scope.$broadcast('id', $scope.selectedRows[0].id);//Just single plain ID
};
});
第二个Ctrl
.controller('secondCtrl',
function($scope, bookService) {
$scope.$on('id', function(event, id) {
bookService.getBookDetail(id).then(function(d) {
$scope.book = d.book;
});
});
});
预期 Json 对象
var arr = "book" : [ {
"id" : "1",
"name" : "Tomcat",
"edition" : "9.1"
}
]
如果有人想让我发布,请告诉我$http
第二个控制器使用的服务。
预期行为
因此,从我的想法来看,理想情况下,我想测试所有可能的场景,但如下所示,然后可以花费:
expect(scope.book).toEqual(arr);
expect(scope.book).not.toEqual(undefined);
感谢大家!