WedX - журнал о программировании и компьютерных науках

Попытка заставить angular mock работать с чайной ложкой-жасмином

Итак, я работаю в 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


Ответы:


1

Для тех, кто заинтересован, проблема, с которой я столкнулся, заключалась в том, что чайная ложка-жасмин, фантомы или оба не распознают синтаксис javascript es6, если в файле есть какой-либо es6, который обычно требуется, весь файл и его содержимое игнорируется без каких-либо сообщений об ошибках. Как только я вернул код angularApp и контроллера на ES5, моя проблема была решена.

20.03.2018
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]