Во-первых, я никогда не видел Angular и Jasmine до нескольких месяцев назад. Поэтому я провожу два или три месяца, изучая это в практике компании, и, наконец, они отправили меня попробовать проверить контроллер/службу в Visual Studio Code.
У меня есть эта переменная в контроллере:
vm.option = $state.param.option;
И в spec.js создать it
с этим:
it('"option" should be defined', function() {
expect(ctrl.option).toBeDefined();
});
Раньше я впрыснуть в beforeEach
$controller
, $rootScope
, _$log_
, $injector
и обслуживание. Мне нужно что-то особенное для проверки этой переменной? Я попытался ввести _$state_
, но появляется сообщение Expected undefined to be defined
.
Я ценю всю помощь и извиняюсь за мой плохой английский.
Edit:
В spec.js:
'use strict';
describe('app/specs/spec.js', function() {
var scope, $log, service, ctrl, state/*, testedStateExample*/;
beforeAll(function() {});
beforeEach(angular.mock.module('App.moduleExample'));
beforeEach(function() {
module(function ($provide){
$provide.constnt('APP_CONFIG', {});
});
});
beforeEach(angular.mock.inject(function ($controller, $state, $rootScope, _$log_, _service_){
service = _service_;
scope = $rootScope.$new();
$log = _$log_;
$state = $state;
state = { params: { option: 'E' }}
ctrl = $controller('controllerExample', {
$scope: scope,
service: service,
$log: $log
});
//testedStateExample = new ctrl(state);
});
it('"option" should be defined', function() {
expect(state.params).toBeDefined();
});
});
Это ошибка на ctrl - что у вас есть, что определено как? – rrd
я определил Ctrl здесь:. 'beforeEach (angular.mock.inject (функция (/ * Титулы * /) { обслуживание = _service_; сфера = $ rootScope $ новый(); $ журнал = _ $ log_; $ состояние = _ $ state_; Ctrl = $ контроллера ('обслуживание', { $ Объем: сфера, услуги: услуги, $ журнал: $ журнал, $ состояние: $ состояние}); ' Сбой комментирую это, теперь я редактирую. xDDDD – Kuru