我有一个在AngularJS控制器中定义的方法,在初始化时调用.我想用Jasmine("jasmine-core": "^2.3.4", "karma": "^0.12.37")测试它.我在互联网和StackOverflow问题上遵循一些教程,但我找不到正确的答案.请看一下这段代码:
控制器usersAddUserController:
(function () {
'use strict';
angular.module('app.users.addUser')
.controller('usersAddUserController', ['$scope', 'usersAddUserService', function ($scope, usersAddUserService) {
usersAddUserService.getCountryPhoneCodes().then(function (phoneCodes) {
$scope.phoneCodes = phoneCodes;
});
}]);
}());
Run Code Online (Sandbox Code Playgroud)
茉莉花测试:
(function () {
'use strict';
describe('usersAddUserControllerUnitTest', function () {
var scope, deferred, objectUnderTest, mockedAddUserService;
beforeEach(module('app'));
beforeEach(inject(function ($rootScope, $q, $controller) {
scope = $rootScope.$new();
function emptyPromise() {
deferred = $q.defer();
return deferred.promise;
}
mockedAddUserService = {
getCountryPhoneCodes: emptyPromise
};
objectUnderTest = $controller('usersAddUserController', {
$scope: scope,
usersAddUserService: mockedAddUserService
});
})); …Run Code Online (Sandbox Code Playgroud) 我想听听您的意见,当没有用户会话(无状态,安静的Web应用程序)时,使用Spring和STOMP协议实现websocket队列的最佳选择是什么.
根据这个解释:https://stackoverflow.com/a/31577152/3076403我知道Spring将使用queue我们使用的simpMessagingTemplate.convertAndSendToUser(...)方法并传递与会话ID相关联的用户名.否则它将使用a topic,其中所有订阅的客户端最终将读取从服务器返回的相同消息.
就我而言,我有一个带有Angular UI部分的RESTful应用程序.我想在UI端实现进度条.最初,UI使用先前确定的给定ID将消息发送到服务器,例如:{id: 20}.
然后,UI必须监听返回的模型对特定ID的更改并计算内部处理的进度.消息返回如下所示:{id: 20, timeLeft: 30, totalTime: 60}
因此,对于将订阅服务器上的websocket频道的每个Angular应用程序,它应该给出不同的结果.
由于我在应用程序中没有会话并且必须在服务器上实现websocket队列,您是否知道使用Spring和STOMP协议的其他解决方案与我最近提出的解决方案不同:
弹簧: simpMessagingTemplate.convertAndSend("/ui/progress/"+id, ...)
UI ng-stomp: $stomp.subscribe("/ui/progress/"+id, function(...))
我知道这将是一个"假"主题,而不是排队.任何评论和想法赞赏.