Итак, я работаю в ruby on rails и впервые использую его с AngularJS 1, поэтому впервые настраиваю модульное тестирование для angularjs внутри rails. Я могу протестировать рельсы с помощью rspec без проблем, но я изо всех сил пытался протестировать angularjs, в настоящее время я работаю с чайной ложкой-жасмином и угловыми макетами, чтобы протестировать простой угловой контроллер, но я столкнулся с несколькими проблемами. Первый файл ниже - это мой тестовый файл, в настоящее время я использую angular.mock.module/inject, и я получаю сообщение об ошибке: «Не удалось создать экземпляр модуля angularrApp из-за ...», в основном это говорит о том, что я не создал или загрузил angularApp где угодно, я, хотя mock, должен был создать тестовый модуль? Если я использую модуль для "angular.module("name", [])", как обычно создаю угловое приложение, я сталкиваюсь с дополнительными проблемами, такими как mainController, не был создан. У меня просто в целом проблемы с правильной работой, есть предложения? Я пытаюсь получить простое первое ожидание работы, прежде чем я перейду к фактическим тестам. И мне нужны angular и angular-mocks в файле spec_helper.js, все файлы ниже. Поможет ли это потребовать файл, который создает угловое приложение, в моем spec_helper.js? Я пробовал, но не могу заставить его работать, так как один находится в каталоге спецификаций, а мое угловое приложение находится в app/assets. Также, если это поможет, вот ссылка на учебник, в котором я основал этот код на https://angular-rails.com/find_and_browse.html
mainController_spec.js (тестовый файл)
'use strict';
describe("mainController", function() {
var scope,
ctrl,
location,
resource;
var setupController = function() {
angular.mock.inject( function($rootScope, $resource, $controller) {
scope = $rootScope.$new();
resource = $resource;
ctrl = $controller('mainController', {$scope: scope, $resource: resource });
})
}
beforeEach(function(){
angular.mock.module("angularApp");
setupController();
})
it('should work', function(){
expect(true).toBe(true);
// expect(scope.games).toBe([])
})
});
mainController.js
'use strict';
myApp.controller('mainController', [ 'mainFactory', '$scope', '$resource', (factory, scope, resource) => {
scope.games = [];
factory.populateTable((data) => {
scope.games = data;
})
}]);
angular-app.js
'use strict';
const myApp = angular.module('angularApp', ['ngRoute', 'ngResource']);
// routes in another file