Вопросы с тегами [karma-jasmine]

0

голосов
0

ответ
9

Просмотры

Karma, Angular 7, & FontAwesome issue Can't bind to 'icon' since it isn't a known property of 'fa-icon'

Can't bind to 'icon' since it isn't a known property of 'fa-icon'. When trying to run this test in people.component.spec.ts import { async, ComponentFixture, TestBed } from "@angular/core/testing"; import { PeopleComponent } from "./people.component"; describe("PeopleComponent Unit Test", () => { let component: PeopleComponent; let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [PeopleComponent] }) .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(PeopleComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it("should create", () => { expect(component).toBeTruthy(); }); ; }) The runner shows this error: Failed: Template parse errors: Can't bind to 'icon' since it isn't a known property of 'fa-icon'. If 'fa-icon' is an Angular component and it has 'icon' input, then verify that it is part of this module. If 'fa-icon' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. This is the HTML causing the issue. I've tried to import FontAwesomeModule and FaIcon on test side and add to TestBed configuration's imports statement. I've tried to ensure the component side has the imports too. Nothing seems to work.
John Peters
1

голосов
0

ответ
112

Просмотры

Карма не работает ни одного случая модульного тестирования

Я пытаюсь создать карму для небольшого демонстрационного проекта. Проблема заключается в том, что карма не выполняет какие-либо тесты. Мой проект имеет только два .js файла: приложение / JS / app.js и тест / спецификация / app.spec.js Моего конфигурационный файл карма выглядит следующим образом: module.exports = функция (конфигурация) {config.set ({BasePath: '', рамки: [ 'жасмин'], плагины: [ 'карма-жасмин', 'карма-phantomjs-пусковая'], файлы: [ 'приложение / JS / app.js', «тест / спецификации / app.spec .js'], исключить: [], препроцессор: {}, репортерам: [ 'Dots'], порт: 9876, цвет: истина, LOGLEVEL: config.LOG_INFO, autoWatch: правда, браузеры: [ 'PhantomJS'], singleRun: истинный}); }; Временное содержимое моего app.spec.js файла является: описать ( «приложение JS», функция () {это ( 'тест'); }); Я использую Gulp в моем проекте, и я написал следующий глоток задачу для тестирования: gulp.task ( 'теста', функция () {gulp.src ( 'приложение / JS / ** / * JS.) .Pipe ( карма ({CONFIGFILE: 'karma.conf.js', действие: 'часы'}));}); Это то, что я получаю в терминале на ходовых испытания глотка: Запуск сервера Кармы ... WARN `start` метод является устаревшим, так как 0,13. Он будет удален в 0.14. Пожалуйста, используйте сервер = новый сервер (конфигурации, [сделано]) server.start () вместо этого. 11 01 2018 22: 26: 29,672: WARN [карма]: Нет захвачена браузера, откройте HTTP: // локальный: 9876/11 01 2018 22: 26: 29,686: INFO [карма] Карма: v2.0.0 сервер начал по адресу: //0.0.0.0:9876/ 11 01 2018 22: 26: 29,687: INFO [гранатомет]: Запуск PhantomJS браузера с неограниченным параллелизмом 11 01 2018 22: 26: 29.693:
aryan87
1

голосов
0

ответ
238

Просмотры

How to test the output of an NgForm function in angular

Я хочу, чтобы проверить результат от представления моей формы в угловом, но я не уверен, что ожидать. Я создал свои ложные данные и создал шпион с жасмином, но я пишу ожидать. Я знаю, что это возвращает Observable, но как я могу проверить это? Мой шаблон Const testForm = {значение: {адрес: {billing_address: '10500 N De Anza Blvd', billing_city: 'Купертино', billing_state: 'CA', billing_zipcode: '95014'}, billing_email_address: '[email protected]' , billing_first_name: 'Тим', billing_last_name: 'Кук', billing_phone_number: 2044567894, given_to: 'NumbersUSA Action', gross_gift_amount: 1000, recurring_subscription ложь}}; Мой компонент save_donation (form_data: NgForm) {вернуться this.donationService.post_donation_form (form_data.value) .subscribe (данные => возвращаемые данные); } Это мой тест, но я не знаю, как написать ожидать, чтобы сравнить его с издеваться. она ( 'должны размещать значения формы на сервер', () => {Const шпионский = spyOn (обслуживание, 'post_donation_form') .and.returnValue (Observable.from ([testForm])); donation_service_component.save_donation (testForm) ; ожидать (donation_service_component.save_donation) .toContain (testForm);}); должны размещать значения формы на сервер», () => {Const шпионский = spyOn (услуга, 'post_donation_form') .and.returnValue (Observable.from ([testForm])); donation_service_component.save_donation (testForm); ожидать (donation_service_component.save_donation) .toContain (testForm); }); должны размещать значения формы на сервер», () => {Const шпионский = spyOn (услуга, 'post_donation_form') .and.returnValue (Observable.from ([testForm])); donation_service_component.save_donation (testForm); ожидать (donation_service_component.save_donation) .toContain (testForm); });
Arthur Decker
1

голосов
1

ответ
1.1k

Просмотры

Как получить доступ к локальным переменному методу в угловом 2 модульном тестировании

Я пытаюсь написать единичный тестовый пример для метода углового 2 с машинописи. В том, что у меня есть одна локальная переменная, которая решает, какая функция будет вызывать. GetData () {пусть условию = route.queryParam.refer; если (условие === 'productWithChild') {this.LoadProductWithChildData (); } Иначе, если ( 'продукт' условие ===) {this.LoadProduct (); } Еще {this.showMessage ( 'Нет данных доступна'); }} Предложить, пожалуйста, как написать модуль прецедент для этого метода.
Atul Sachan
1

голосов
0

ответ
60

Просмотры

Угловой тест устройства не может прочитать свойство подписки

Так им пытаются создать модульный тест для этого компонента и продолжать получать эту ошибку. TypeError: Не удается прочитать свойство «подписаться» на неопределенное. Что является причиной этого, и как бы я правильно осуществить тест блока / интеграцию для этого компонента? боковая панель-элемент-component.html {{}} item.label боковая панель-элемент-component.ts импорта {Компонент, OnInit, вход} от '@ угловой / ядра'; импорт {ExampleDef} от '../example.model'; импорт {Место} от «@ угловой / общий»; импорт {маршрутизатор, ActivatedRoute} от '@ угловой / маршрутизатора; @Component ({селектор: 'приложение-боковая панель-элемент', templateUrl: './sidebar-item.component.html'}) экспорта класс SidebarItemComponent реализует OnInit {@Input ( '') пункт пункт: ExampleDef; Конструктор (частный маршрутизатор: маршрутизатор, частный маршрут: ActivatedRoute, частное местоположение: Location) {} // Проверяет, является ли этот текущий пример выбран один IsActive (): Boolean {возвращение `/ $ {this.item.path}` === this.location.path (); } NgOnInit () {}} импорт спецификации файла {IntroComponent} от './../intro/intro.component'; импорт {TestBed, асинхронные, ComponentFixture} от '@ угловые / ядра / тестировании'; импорт {SidebarItemComponent} от './sidebar-item.component'; импорт {маршрутизатор, ActivatedRoute} от '@ угловой / маршрутизатора; импорт {К} от '@ угловой / платформы браузера; импорт {RouterTestingModule} от '@ угловой / маршрутизатор / тестирование'; импорт {NgClass, расположение} от '@ угловой / общий'; импорт {SidebarComponent} от './sidebar.component'; импорт {ExampleDef} от '../example.model'; Компонент = fixture.componentInstance; fixture.detectChanges (); }); приспосабливать ( 'должен ссылаться на пути пункт', () => {component.item.path = '/ дом'; component.item.label = 'Введение'; component.isActive (); fixture.detectChanges (); пусть де = fixture.debugElement.query ( 'пункт 'By.css ()) пусть эш: HTMLElement = de.nativeElement, ожидать (el.innerText) .toContain (' интро');}); }); ожидать (el.innerText) .toContain ( 'интро'); }); }); ожидать (el.innerText) .toContain ( 'интро'); }); });
user3228452
1

голосов
0

ответ
913

Просмотры

Configuring unit testing within an Ionic3 application

Я реализации модульных тестов в пределах ionic3 проекта, основанного на следующем примере проекта: https://github.com/ionic-team/ionic-unit-testing-example. Он отлично работает, но у меня есть некоторые проблемы: я могу видеть ошибки компиляции (для жасмин), тогда как эти те не мешают запуск тесты кармы начать ./test-config/karma.conf.js Webpack: Составитель успешно. WebPack: Компиляция ... 17 03 2018 15: 53: 18,403: WARN [карма]: Нет захвачена браузер, откройте HTTP: // локальный: 9876 / ОШИБКА в ./src/pages/test/test.spec.ts [TSL ] ERROR в /home/app-path/src/pages/test/test.spec.ts(11,1) TS2304: не удается найти имя 'описать'. ОШИБКА в ./src/pages/test/test.spec.ts [TSL] ERROR в /home/app-path/src/pages/test/test.spec.ts(17,3) TS2304: Не удается найти имя «beforeEach ». ОШИБКА в ./src/pages/test/test.spec. ц [TSL] ERROR в /home/app-path/src/pages/test/test.spec.ts(40,39) TS2304: Не удается найти имя 'ожидать'. ОШИБКА в ./src/pages/test/test.spec.ts [TSL] ERROR в /home/app-path/src/pages/test/test.spec.ts(42,3) TS2304: Не удается найти имя «его ». ... WebPack: Не удалось собрать. 17 03 2018 15: 53: 18,422: INFO [карма] Карма: V1.7.1 сервер начал в http://0.0.0.0:9876/ 17 03 2018 15: 53: 18.422: INFO [гранатомет]: Запуск браузера Chrome с неограниченным параллелизм 17 03 2018 15: 53: 18,748: INFO [гранатомет]: Запуск браузера Chrome 17 03 2018 15: 53: 20,153: INFO [Chrome 57.0.2987 (Linux 0.0.0)]: Connected на сокет py7H3olXgBzYBE2DAAAA с идентификатором 24040166 Chrome 57,0 0,2987 (Linux 0.0.0): Выполненный 8 из 8 УСПЕХА (2.716 ИКС / 0 ИКС) Я не могу отобразить результаты в браузере, запущенном кармы, даже если у меня есть kjhtml репортер сконфигурировано. См https: //github.com/ionic-team/ionic-unit-testing-example/blob/master/test-config/karma.conf.js#L52. Обратите внимание, что я добавил прогресс репортер и он работает отлично: репортеры: [ «прогресс», «kjhtml»], спасибо за вашу помощь!
Thierry Templier
1

голосов
0

ответ
394

Просмотры

Карма: Ошибка: [$ Инжектор: nomod] «приложение» модуль не доступен

Я новичок в угловой мир и сам новичок в карме. Я получаю следующее сообщение об ошибке, когда я пытаюсь запустить тест Карма-жасмин Unit. { «Сообщение»: «ошибка была брошена в Afterall \ nUncaught Ошибка: [$ Инжектор: nomod] приложение" модуль недоступен Вы либо опечатка имя модуля или забыли загрузить его Если регистрирующий модуль убедитесь, что вы задаете!. зависимостей в качестве второго аргумента \ nhttp:. //errors.angularjs.org/1.6.9/$injector/nomod p0 = приложение " "ул?":" ошибка была брошена в Afterall \ nUncaught ошибка: [$ форсунка : «приложение» nomod] модуль недоступен вы либо опечатка имя модуля или забыли загрузить его Если регистрирующий модуль убедитесь, что вы указываете зависимости в качестве второго аргумента \ nhttp:.. //errors.angularjs.org/1.6 0,9 / $ форсунка / nomod? p0 = приложение» } Проходя через различные посты, я обнаружил, что эта ошибка возникает, когда: орфографическая ошибку имя модуля Забудьте зарегистрировать модуль Забудь для загрузки зависимостей Но, кажется, что ни один из выше вопроса не относится к моему приложению. Моя App очень мало, как сейчас. Я отправляю почти все мое приложение для справки. Вы можете найти свой код ниже для справки. app.module.js (функция () { "использовать строгий"; угловые .module ( "приложение", [ "ngRoute", "ngMessages", "ngclipboard", "ui.router"]) .config (конфигурации); функция конфигурации ($ locationProvider, $ routeProvider, $ httpProvider) {$ locationProvider.hashPrefix ( "!"); $ routeProvider .when ( "/ лицензирование", {templateUrl: "Приложение / лицензирование / licensing.html", контроллер: "LicensingController", controllerAs: "VM"}) .otherwise ({RedirectTo: "/ лицензирование"}); }}) (); index.html karma.conf.js // базовый путь, который будет использоваться для решения всех моделей (например, файлы, исключить.) BasePath: «» список, // файлов / шаблонов для загрузки файлов браузера: [»./ node_modules / угловой / angular.js', // Угловая Framework './node_modules/@uirouter/angularjs/release/angular-ui-router.js', // UI-маршрутизатор' ./node_modules/angular-mocks/angular- mocks.js', // загружает модуль для испытаний './app/licensing/licensing.controller.js', // Лицензирование регулятору ./app/app.module.js', // Наша Угловое приложение». /app/licensing/licensing.controller.spec.js' // Licensing контроллер Spec файла], license.controller.js (функция () { "использовать строгий", Угловое .module ( "приложение") .controller ( "LicensingController" , LicensingController) функция LicensingController () {// Некоторый код}}) (); licensing.controller.spec.js описывают ( "Licensing форма", функция () {уаг LicensingController; beforeEach (angular.mock.module ( "приложение")); beforeEach (инъекционные (функция (_LicensingController_) {LicensingController = _LicensingController_;}) ), она ( "это тест для пустышки (2 + 2)", функция () {ожидать (2 + 2) .toEqual (4);});}); JS (функция () { "использовать строгий"; угловые .module ( "приложение") .controller ( "LicensingController", LicensingController) Функция LicensingController () {// Некоторый код}}) (); licensing.controller.spec.js описывают ( "Licensing форма", функция () {уаг LicensingController; beforeEach (angular.mock.module ( "приложение")); beforeEach (инъекционные (функция (_LicensingController_) {LicensingController = _LicensingController_;}) ), она ( "это тест для пустышки (2 + 2)", функция () {ожидать (2 + 2) .toEqual (4);});}); JS (функция () { "использовать строгий"; угловые .module ( "приложение") .controller ( "LicensingController", LicensingController) Функция LicensingController () {// Некоторый код}}) (); licensing.controller.spec.js описывают ( "Licensing форма", функция () {уаг LicensingController; beforeEach (angular.mock.module ( "приложение")); beforeEach (инъекционные (функция (_LicensingController_) {LicensingController = _LicensingController_;}) ), она ( "это тест для пустышки (2 + 2)", функция () {ожидать (2 + 2) .toEqual (4);});});
Ankit Prajapati
1

голосов
1

ответ
389

Просмотры

Ошибка типа: JSON.stringify не может сериализовать циклические структуры (в карме, PhantomJS, угловой-кли)

Я пытаюсь запустить тесты кармы с помощью угловой командной строки и PhantomJS (нг теста --code охват --single перспективы), но я получаю ошибку, которая, кажется, в результате чего 24 из моих 33 модульных тестов на провал. Когда я запускаю тесты с Chrome как настроен браузер, все тесты проходят. PhantomJS 2.1.1 (7.0.0 Windows) AppService должен быть создан НЕСОСТОЯВШИМСЯ TypeError: JSON.stringify не может сериализовать циклические структуры. в HTTP: // локальный: 9876 / _karma_webpack_ / polyfills.bundle.js (строка 5424) stringify @ [машинный код] stringify @ HTTP: // локальный: 9876 / _karma_webpack_ / polyfills.bundle.js: 5424: 28 displayModal @ HTTP : // локальный: 9876 / _karma_webpack_ / scripts.bundle.js: 4473: 57 createModalContent @ Http: // Localhost: 9876 / _karma_webpack_ / scripts.bundle.js: 4453: 41 BMS @ HTTP: // локальный: 9876 / _karma_webpack_ /scripts.bundle.js:7282:43 BMSService @ HTTP: //localhost:9876/_karma_webpack_/main.bundle.js:2095:25930 _createClass @ HTTP: // локальный: 9876 / _karma_webpack_ / vendor.bundle.js: 84475: 34 _createProviderInstance $ 1 @ HTTP: // локальный: 9876 / _karma_webpack_ /vendor.bundle.js:84447:38 resolveNgModuleDep @ HTTP: // локальный: 9876 / _karma_webpack_ / vendor.bundle.js: 84432: 42 _createClass @ HTTP: // локальный: 9876 / _karma_webpack_ ... (там было больше стек, но я обрезается его) В других вопросах люди имели с кармой и PhantomJS некоторые предложили раскомментирован файл polyfills.ts. Я полагал, что может быть связано, так как ошибка, кажется, приходит из polyfills сгруппированных файл, поэтому я попытался запустить тесты с polyfills закомментированными, а также с их раскомментирована, и это не делает разницы в любом случае. Вот мой karma.conf.js файл: https://codepen.io/anon/pen/NYBypv модуль. 'Cobertura', подкаталог:, файл '': 'ИСПЫТАНИЯ xunit.xml'}]}, {coverageIstanbulReporter: отчеты: [ 'HTML', 'lcovonly', 'покрытие'], fixWebpackSourcePaths: Истинные}, angularCli: { среда: 'DEV'}, репортеры: [ 'прогресс', 'kjhtml', 'покрытие'], порт: 9876, цвет: правда, LOGLEVEL: config.LOG_DEBUG, браузеры: [ 'PhantomJS'],}); }; порт: 9876, цвет: правда, LOGLEVEL: config.LOG_DEBUG, браузеры: [ 'PhantomJS'],}); }; порт: 9876, цвет: правда, LOGLEVEL: config.LOG_DEBUG, браузеры: [ 'PhantomJS'],}); };
florentine
1

голосов
0

ответ
309

Просмотры

Undefined is not an object(evaluating 'this.outages.getValues) in karma (Angular 2)

I'm trying to fix this for the past 3 hours and no use. Any help would be appreciated. This is my component export class CallComponent implements OnInit{ ngOnInit() { this.initCall(); } constructor( private chat: ChatActiveService, private monitor: MonitorService, private outages: OutagesService) { } initCall() { // Make 3 calls simultaneously const combined = forkJoin ( this.chat.callA(param).pipe( catchError(err => { this.handleConversationError(err); return Observable.empty(); }), ), this.monitor.callB().pipe( catchError(err => { return Observable.empty(); }) ), this.outages.getValues().pipe( catchError(err => { return Observable.empty(); //return Observable.of(undefined); }) ) ); const subscribe = combined.subscribe ( ([ callA, callB, getValues ]) => { // My actions } ); } In my spec file, i imported the services, added the services in providers and i added mock data also for the functions. I'm getting this error Undefined is not an object(evaluating 'this.outages.getValues) The implementation done in my component is wrong or should i add anything else? Any idea or suggestion would be appreciated!
Ramya S
1

голосов
1

ответ
251

Просмотры

AngularJS Карма проверить URL PARAM присутствует

Я новичок в модульное тестирование и пытается написать модульный тест для моего приложения. Мой Маршрут: {имя: 'Детали', URL: '/ счета / компании /: CompanyID', контроллер: 'controllere', templateUrl: 'templateurl'} Мой контроллер: если (! $ StateParams.companyId) {$ сфера .promise = $ state.go ( 'дом'); } Еще {// получить информацию о компании} В моем модульном тестировании мне нужно проверить, если «CompanyID» присутствует в URL, а затем только приступить к работе с еще перенаправлять «домой». Я попробовал этот код, но он не каждый раз. Я не знаю, что неправильно, что я делаю. он ( 'должен реагировать на URL с Params', функция () {ожидать ($ state.href ( '/ счета / компании /', {CompanyID:. тест-компания '})) toEqual (' # / счета / компании / тест-компания ');}); Everytime я бегу этот тест он говорит:
pkdq
1

голосов
0

ответ
25

Просмотры

AngularJS + Карма + Жасмин: beforeEach () - angular.module против angular.mock.module

Я новичок в жасмин и Карма тестирования. Я пытаюсь модульного тестирования AngularJs службы. Во время написания Спекуляции, я пришел около двух типов Кодекса для инъекций модуля. Первый тип beforeEach (angular.mock.module ( "приложение")); 2-й тип beforeEach (функция () {angular.module ( "приложение");}); Может кто-нибудь объяснить разницу между двумя выше в простом простом английском языке с простым примером. А также, какой код использовать в каком случае? Я пытался гуглить, но не смог найти правильный ответ. Спасибо :)
Ankit Prajapati
1

голосов
0

ответ
1.5k

Просмотры

Ошибка: StaticInjectorError (DynamicTestModule) Угловое 5 Карма жасмин 2.8.0

Мое приложение работает нормально, но в то время как я пытаюсь выполнить модульное тестирование, я получаю ниже упомянутой ошибки: Ошибка: StaticInjectorError (DynamicTestModule) [AppComponent -> FinanceserviceService]: StaticInjectorError (Платформа: ядро) [AppComponent -> FinanceserviceService]: NullInjectorError: Нет поставщик для FinanceserviceService! Мои коды приведены ниже: financeservice.service.ts импорта {инъекционного} от «@ угловое ядро ​​/»; импорт {HttpClient, HttpHeaders} от '@ угловой / общий / HTTP'; 'Rxjs / добавить / оператор / карты' импорта; @Injectable () экспорт класс FinanceserviceService {конструктор (частный _http: HttpClient) {} finData () {вернуть this._http.get ( "./ активы / data.json") .map (результат => результат); }} Test.spec.ts импорта {Testbed, впрыснуть, асинхронный, ComponentFixture} из ' @ Угловые / ядро ​​/ тестировании '; импорт {HttpClientTestingModule, HttpTestingController} от '@ Угловое / общие / HTTP / тестирования'; импорт {FinanceserviceService} от './financeservice.service'; импорт {AppComponent} от './XXXX.component'; импорт {SliderModule} от «углового изображения слайдера»; импорт {CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA} от '@ угловой / сердцевины'; 'Rxjs / добавить / оператор / карты' импорта; описывает ( 'FinanceserviceService', () => {beforeEach (() => {{TestBed.configureTestingModule (поставщики: [FinanceserviceService], схемы: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]});}); он ( `должны create`, асинхронной (инъекционные ([HttpTestingController, FinanceserviceService], (HTTPClient: HttpTestingController, financeservice: FinanceserviceService) => {ожидать (financeservice) .toBeTruthy (); }))); }); * .Component.ts импорт {Компонент} от '@ угловой / сердцевины'; импорт {FinanceserviceService} от './financeservice.service'; импорт {} Chart из 'chart.js'; конструктор (частный _fin: FinanceserviceService) {} ngOnInit () {this._fin.finData () .subscribe (Рез => {пусть Fmax = Рез [ 'список'] карта (Рез => res.main.temp_max); пусть. Fmin = Рез [ 'список'] карта (Рез => res.main.temp_min). пусть alldates = Рез [ 'список'] карта (Рез => res.dt) пусть FDates = [] alldates.forEach ((. Рез) => {пусть jsdate = новая Дата (Рез * 1000) FDates.push (jsdate.toLocaleTimeString ( 'ан', {года: 'числовой', месяц: 'короткий', день: 'числовой' импорт {HttpClientModule} от '@ угловой / общий / HTTP'; импорт {FinanceserviceService} от './financeservice.service'; импорт {NgModule, CUSTOM_ELEMENTS_SCHEMA} от '@ угловой / сердцевины'; импорт {AppComponent} от './XXX.component'; импорт {BrowserAnimationsModule} от «@ угловой / платформы браузера / анимации»; импорт {SliderModule} от «углового изображения слайдера»; импорт {CommonModule} от '@ угловой / общий'; импорт {NO_ERRORS_SCHEMA} от '@ угловой / ядро'; @NgModule ({декларации: [AppComponent], импорт: [BrowserModule, HttpClientModule, BrowserAnimationsModule, SliderModule,], схемы: [NO_ERRORS_SCHEMA], провайдеры: [FinanceserviceService], самозагрузки: [AppComponent]}) экспорт класс AppModule {} Пожалуйста, помогите
1

голосов
0

ответ
24

Просмотры

Как проверить, если выход компонента третьей стороной называет правильную функцию на событие в angular5

Допустим, я использую материала автозаполнения, как так: {{newsroomsource.sourceName}} | Тип: {{newsroomsource.sourceType}} Как убедиться, что 's событие optionSelected призывающего правильной функции, которую он (' должен вызывать onNewsRoomSelect на событии автозаполнения optionselect», () => {// Шпион на comp.onNewsRoomSelect (selectedNewsRoom: NewsRoomSource ); // DElibratedly огонь событие comp.optionSelected) = () // проверить, если onNewsRoomSelect () вызывается});
Snedden27
1

голосов
1

ответ
160

Просмотры

Directive with templateUrl Karma error

I'm having a problem while testing a directive that has a TemplateUrl with Karma. Whenever I go to test I get the error: Unexpected request: GET views/templates / directives/input.html This is the code of my directive app.directive('destinationDirective', function(){ var controller = function($http, $rootScope, $scope) { $scope.getWeather = function(user) { $http.get("http://api.openweathermap.org/data/2.5/weather?q="+user.localization+"&appid="+$scope.apiKey).then( function successCallBack(res) { if (res.data.weather) { user.weather = {}; user.weather.main = res.data.weather[0].main; user.weather.temp = $scope.convertKtoC(res.data.main.temp); } else { $rootScope.message = "Localization not found"; } }, function errorCallBack(error) { if(error.data.cod == "404") { $rootScope.message = "City not found" } else { $rootScope.message = "Server error"; } }); }; $scope.convertKtoC = function(temp) { return Math.round(temp - 273); }; } return { scope: { user: '=', apiKey: '=', onRemove: '&' }, controller: controller, controllerAs: 'VM', templateUrl: 'views/templates/directives/input.html' } }); My .spec describe('Teste do ModalController', function() { var ctrl, scope, rootscope, httpBackend, timeout, rootScope; //Injeta o modulo toda vez que for executar um spec beforeEach(module('APP')); //Injeta o controller sempre que for fazer um teste beforeEach(inject(function(_$controller_, _$rootScope_, _$httpBackend_, _$timeout_) { rootScope = _$rootScope_; scope = _$rootScope_.$new(); httpBackend = _$httpBackend_; timeout = _$timeout_; ctrl = _$controller_('ModalController', { $scope: scope }); })); // beforeEach(module('ngTemplatePHP')); // beforeEach(module('ngTemplate')); afterEach(function() { //Verifica se todas as expectativas foram feitas httpBackend.verifyNoOutstandingExpectation(); //Verifica se todas as requisições foram feitas httpBackend.verifyNoOutstandingRequest(); }); describe('Testando destinationDirective', function() { var scope, template, httpBackend, isolateScope; beforeEach(inject(function($compile, _$rootScope_, $httpBackend) { scope = _$rootScope_.$new(); httpBackend = $httpBackend; scope.newUser = {}; scope.newUser = { "name": "Jorge", "pass": "iser", "localization": "Melbourne" }; scope.apiKey = "xyz"; var element = angular.element(''); template = $compile(element)(scope); //Aplica as alteracores scope.$digest(); //Isola o scope do controller, do scopo do directive isolateScope = element.isolateScope(); })); it('devera atualizar o clima de uma localizacao', function() { scope.newUser = { "name": "Jorge", "pass": "iser", "localization": "Melbourne" }; // httpBackend simula o backend // expectGET faz uma requisição get // respond cria o que seria a resposta esperada httpBackend.expectGET("http://api.openweathermap.org/data/2.5/weather?q=" + scope.newUser.localization + "&appid=" + scope.apiKey).respond({ weather: [{ main: 'Rain', detail: 'Light rain' }], main: { temp: 288 } }); isolateScope.getWeather(scope.newUser); httpBackend.flush(); expect(scope.newUser.weather.main).toBe("Rain"); expect(scope.newUser.weather.temp).toBe(15); }); it('devera chamar a funcao remove do controller pai', function() { scope.removeTest = 1; scope.remove = function() { scope.removeTest++; } isolateScope.onRemove(); expect(scope.removeTest).toBe(2); }); it('devera gerar o HTML corretamente', function() { var templateAsHtml = template.html(); expect(templateAsHtml).toContain('Melbourne'); }); }); }); And my karma.conf.js module.exports = function(config) { config.set({ basePath: '', frameworks: ['jasmine'], files: [ 'node_modules/angular/angular.js', 'node_modules/angular-sanitize/angular-sanitize.min.js', 'node_modules/angular-mocks/angular-mocks.js', 'node_modules/sweetalert/dist/sweetalert.min.js', 'node_modules/karma-ng-html2js-preprocessor/lib/html2js.js', 'node_modules/karma-ng-php2js-preprocessor/lib/php2js.js', 'public/ngDS/app.ng.js', 'public/ngDS/**.js', 'public/ngDS/**/**.js', 'public/assets/js/app.ng.js', 'public/assets/js/**/**.js', 'public/views/**/**.php', 'public/views/**/**.html' ], plugins: [ 'karma-jasmine', 'karma-spec-reporter', 'karma-chrome-launcher', 'karma-ng-html2js-preprocessor', 'karma-ng-php2js-preprocessor' ], exclude: [ ], preprocessors: { 'public/views/templates/**/**.html': ['ng-html2js'], 'public/views/templates/**/**.php': ['ng-php2js'] }, ngHtml2JsPreprocessor : { stripPrefix : 'public/', moduleName : 'ngTemplates' }, ngPhp2JsPreprocessor: { stripPrefix: 'public/', stripSuffix: '.ext', moduleName: 'ngTemplatePHP', phpBin: '/php' }, reporters: ['spec'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], singleRun: false, concurrency: Infinity }); } I've been looking for some time but can not find a solution.
Vrowk
1

голосов
0

ответ
319

Просмотры

Угловая ошибка Карма Тест: «Uncaught ReferenceError: Система не определен

Я recvied некоторый код, что я должен написать несколько тестов unint / E2e для. Моя единственная проблема в том, в любое время я запустить тест нг, я получаю эту ошибку: Chrome 67.0.3396 (Windows 10 0.0.0) ERROR { «сообщение»: «неперехваченный ReferenceError: Система не определена \ физ HTTP: // локальный: 9876 /_karma_webpack_/scripts.bundle.js:1:1\n\nReferenceError: система не определен \ п по адресу: // локальный: 9876 / _karma_webpack_ / scripts.bundle.js: 1: 1" , "ул": " Uncaught ReferenceError: система не определен \ физ HTTP: // локальный: 9876 / _karma_webpack_ / scripts.bundle.js: 1: 1 \ п \ nReferenceError: система не определен \ п по адресу: // локальный: 9876 / _karma_webpack_ / scripts.bundle.js: 1: 1" } Chrome 67.0.3396 (Windows 10 0.0.0) ERROR { "сообщение": «Uncaught ReferenceError: система не определен \ физ HTTP: // локальный:
1

голосов
0

ответ
21

Просмотры

Проверьте, что $ mdDialog решительность называет правильный сервис

У меня есть упрощенный сервис, который открывает диалоговое окно, как этот service.open = арг => {возвратного $ mdDialog.show ({templateUrl: '... ' контроллер:' ... ' controllerAs:' ...', постановляю: {mything:. () => {возвращение mything.get () $ promise.then (данные => data.data);}}})}; В моем тесте я впрыснуть обслуживание mything и шпионить методом GET. Но это никогда не вызывается, когда я называю service.open функции. Я хотел бы, чтобы проверить, что mything.get () вызывается, как я могу идти о том, что делать? beforeEach (инъекционные ((_ dialog_, _mything_) => {Диалог = _dialog_; mything = _mything_;})); годный ( 'следует назвать правильную решимость', () => {spyOn (mything, 'получить'); dialog.open (); // Это моя служба ожидать (mything.get). toHaveBeenCalled (); });
Anton Antonsen
1

голосов
0

ответ
188

Просмотры

У нас есть тест исследователь в VS код для транспортир машинопись?

Я работаю в рамках транспортир Jasmine в узле JS. У нас есть тест исследователь или любой плагин, который перечисляет все ККТ в спецификации-ts-файлы проекта? Так что мы можем выполнить тест непосредственно из тестового exlporer? У нас есть тестовый проводник в Visual Studio. Точно так же он доступен в VS код? Заранее спасибо
simond
1

голосов
0

ответ
285

Просмотры

Карма / жасмин: Невозможно проверить метод службы вызывается внутри компонента в радиально-4

Я новичок в карме / жасмин и пытаюсь проверить код, где метод компоненты вызывает метод обслуживания и рассчитывает значение в ответе. Компонент Вот небольшой компонент, который я создал. isLoginRequired () вызывается в ngOnInit (), который дополнительно выполняет this.service.checkAuthentication (). экспорт класс AppComponent реализует OnInit {публичное название = «приложение»; общественный showLoginBtn = истина; конструктор (частная служба: CustomService) {} ngOnInit () {localStorage.setItem ( 'ключ', '12345'); this.title = 'имя изменено'; this.isLoginRequired (); } IsLoginRequired () {this.showLoginBtn = this.service.checkAuthentication (); }} Сервис Это индивидуальное обслуживание, внутри которого метод checkAuthentication () проживает. @Injectable () экспорт класс CustomService {конструктор () {} checkAuthentication (): Boolean {возвращение !! localStorage.getItem ( 'ключ'); }} Функция Это спецификация файл, в котором я пишу случаи модульного тестирования. Пожалуйста, обратитесь, чтобы проверить случай # 4. описывают ( 'компонент тестирования App', () => {пусть компонент: AppComponent, пусть службы: CustomService; пусть приспособление; beforeEach (() => {{TestBed.configureTestingModule (заявления: [AppComponent, CustomPipe, CustomDirective], провайдеры: [CustomService]}) compileComponents ();. = арматуре TestBed.createComponent (AppComponent); компонент = fixture.debugElement.componentInstance; обслуживание = TestBed.get (CustomService);}); // тестовый пример # 1 это создание (компонент », () => {Ожидать (компонент) .toBeTruthy (); }); // тест # 2 он ( 'имеет название "приложение"', () => {ожидать (component.title) .toBe ( 'приложение');}); // тестовый пример # 3 он ( 'isLoginRequired срабатывает', () => {spyOn (компонент, 'isLoginRequired'); component.ngOnInit (); ожидать (component.isLoginRequired) .toHaveBeenCalled ();}); // тест # 4 он ( 'service.checkAuthentication срабатывает', () => {spyOn (компонент, 'isLoginRequired'); spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired ) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled ();}); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! // тест # 2 он ( 'имеет название "приложение"', () => {ожидать (component.title) .toBe ( 'приложение');}); // тестовый пример # 3 он ( 'isLoginRequired срабатывает', () => {spyOn (компонент, 'isLoginRequired'); component.ngOnInit (); ожидать (component.isLoginRequired) .toHaveBeenCalled ();}); // тест # 4 он ( 'service.checkAuthentication срабатывает', () => {spyOn (компонент, 'isLoginRequired'); spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired ) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled ();}); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! // тест # 2 он ( 'имеет название "приложение"', () => {ожидать (component.title) .toBe ( 'приложение');}); // тестовый пример # 3 он ( 'isLoginRequired срабатывает', () => {spyOn (компонент, 'isLoginRequired'); component.ngOnInit (); ожидать (component.isLoginRequired) .toHaveBeenCalled ();}); // тест # 4 он ( 'service.checkAuthentication срабатывает', () => {spyOn (компонент, 'isLoginRequired'); spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired ) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled ();}); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! {Ожидать (component.title) .toBe ( 'приложение'); }); // тестовый пример # 3 он ( 'isLoginRequired срабатывает', () => {spyOn (компонент, 'isLoginRequired'); component.ngOnInit (); ожидать (component.isLoginRequired) .toHaveBeenCalled ();}); // тест # 4 он ( 'service.checkAuthentication срабатывает', () => {spyOn (компонент, 'isLoginRequired'); spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired ) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled ();}); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! {Ожидать (component.title) .toBe ( 'приложение'); }); // тестовый пример # 3 он ( 'isLoginRequired срабатывает', () => {spyOn (компонент, 'isLoginRequired'); component.ngOnInit (); ожидать (component.isLoginRequired) .toHaveBeenCalled ();}); // тест # 4 он ( 'service.checkAuthentication срабатывает', () => {spyOn (компонент, 'isLoginRequired'); spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired ) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled ();}); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! {SpyOn (компонент, 'isLoginRequired'); component.ngOnInit (); ожидать (component.isLoginRequired) .toHaveBeenCalled (); }); // тест # 4 он ( 'service.checkAuthentication срабатывает', () => {spyOn (компонент, 'isLoginRequired'); spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired ) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled ();}); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! {SpyOn (компонент, 'isLoginRequired'); component.ngOnInit (); ожидать (component.isLoginRequired) .toHaveBeenCalled (); }); // тест # 4 он ( 'service.checkAuthentication срабатывает', () => {spyOn (компонент, 'isLoginRequired'); spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired ) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled ();}); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled (); }); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо! spyOn (услуга 'checkAuthentication'); component.ngOnInit (); ожидать (component.isLoginRequired) .toBeTruthy (); ожидать (service.checkAuthentication) .toHaveBeenCalled (); }); }); Ошибки Ошибка: Ожидаемая шпионский checkAuthentication быть вызванными. Мне очень нужна помощь здесь. Заранее спасибо!
1

голосов
1

ответ
81

Просмотры

Угловые модульные тесты - запуск Chrome после успешной сборки (с учетом длительного времени)

На некоторых машинах, строящих Угловое приложение занимает более 2 * 60s (тайм-аут по умолчанию для Chrome начала карма, чтобы поймать содержание). Есть ли способ, чтобы заставить Карму начать Chrome после сборки закончена? Мой package.json: { "зависимость": { "@ угловой / анимация": "4.4.4", "@ угловой / общий": "4.4.4", "@ угловом / компилятора": "4.4.4", "@ угловом / ядра": "4.4.4", "@ угловых / форм": "4.4.4", "@ угловое / HTTP": "4.4.4", "@ угловой / платформы-браузер": «4,4 0,4" , "@ угловой / платформы браузера динамический": "4.4.4", "@ угловой / платформы-сервер": "4.4.4", "@ угловой / маршрутизатор": "4.4.4", " rxjs ": "5.4.3", & Config.angularCli.codeCoverage? [ 'Прогресс', 'освещение-Стамбул']: [ 'Прогресс', 'kjhtml'], порт: 9876, цвет: правда, LOGLEVEL: config.LOG_INFO, autoWatch: правда, autoWatchDelay: 1000, браузеры: [ 'Chrome' ], singleRun: ложь}); };
koral
1

голосов
2

ответ
637

Просмотры

Angular 6 select input testing

I have a problem with testing the select control in angular 6 and I am probably missing something obvious. I have such a select control. {{tenant.name}} It binds to pretty simple component. export class TopNavbarComponent implements OnInit { _currentLang: string; _tenants: Tenant[]; _selectedTenant: string; constructor(private translate: TranslateService, private tenantService: TenantService) { } ngOnInit() { this._currentLang = this.translate.currentLang; this.tenantService.getTenants().subscribe( (tenants) => { this._tenants = tenants this._selectedTenant = this._tenants[0].value; }, (error) => console.error(error) )}} And my test class with this one failing test describe('TopNavbarComponent', () => { let component: TopNavbarComponent; let fixture: ComponentFixture; let translateService: TranslateService; beforeEach(async(() => { TestBed.configureTestingModule({ imports: [FormsModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useClass: JsonTranslationLoader } })], declarations: [TopNavbarComponent], providers: [TranslateService] }) .compileComponents(); translateService = TestBed.get(TranslateService); translateService.currentLang = 'en'; })); beforeEach(() => { fixture = TestBed.createComponent(TopNavbarComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should init after ngOnInit observables completes', fakeAsync(() => { const topnavElement: HTMLElement = fixture.nativeElement; const selectElement = topnavElement.querySelector('select'); expect(selectElement.value).toEqual(''); tick(); fixture.detectChanges(); expect(component._tenants).toBeTruthy(); expect(component._tenants.length).toEqual(2); expect(component._selectedTenant).toEqual(component._tenants[0].value); fixture.detectChanges(); console.log(selectElement); expect(selectElement.value).toEqual(component._selectedTenant); })); And yet last expect fails. Select value is never there, it always appears as ''. I tried attribute selectedOptions but its length is 0. I am unable to get this one value that supposed to be selected after setting _selectedTenant up in onInit that is bound to select with ngModel. I now that this question is probably trivial but I never found an answer anywhere why this might be happening. I am sure I will feel stupid after someone resolves this in like 1 minute after posting :( Nevertheless, thanks foryour help!
Jakub Lasoń
1

голосов
0

ответ
1.1k

Просмотры

Как избежать жасмин бросить ошибку: XXX уже шпионили?

Справочная информация У меня есть два случая нужно проверить, должны формировать действительный при переходе на следующую страницу установленной формы действительного верно goToNextPage вызова () ожидать результат truthy должен стать действительным при заполнении опции данные затем собирается на следующей странице установленной формы действительного истинна информация открыта опция блок обеспечения формы действует goToNextPage вызова () ожидают результат truthy Вопрос на шаге 3 второго испытания, он выдаст ошибку Когда я шпионить собственности на spyOnProperty более чем в два раза spyOnProperty (MyObject, «myPropertyName»). и. ReturnValue (...); Ошибка: «myPropertyName» уже шпионили я имею в виду решений за последние несколько лет и написать временное решение ниже. Есть ли более простой способ решить эту проблему сейчас? угловой блок-тестирование-с-жасмина-как удаляемые или изменения-spyon insertspyon-2-кратный-JQuery значения ко входу-во-жасмин-тесты жасмин spyOn с несколькими возвратами My Temp набор решений жасмина . .getEnv () allowRespy (истина); кэш первого шпиона и использовать его позже класс SamplePageHelper {частный respyHelper = новый JasmineRespyHelper (); . Конструктор (публичное samplePage: SamplePage) {} fakeValid () {// spyOnProperty (this.samplePage, 'IsValid') and.returnValue (истина); this.respyHelper.spyOnProperty (this.samplePage, 'IsValid') and.returnValue (истина). }} // вспомогательный класс JasmineRespyHelper {частный cacheList = новый Map (); Конструктор () {jasmine.getEnv () allowRespy (истина). } SpyOnProperty <T> (объект: Т, свойство: keyof T, AccessType: «Получить» | . 'Установить'): jasmine.Spy {Const objectKey = object.constructor.toString () подстроку (0, 15); Const cacheKey = `$ {objectKey} _ $ {свойство} _ $ {AccessType || ''} `; // пусть шпионский = this.cacheList.get (cacheKey); Const isNoCached = шпион!; если (isNoCached) {шпионского = spyOnProperty (объект, свойство, AccessType); this.cacheList.set (cacheKey, разведчик); } // возвращает шпион; }} Интернет Образец https://stackblitz.com/edit/jsamine-respy?file=src/test/sample.spec.ts описания ( 'демо (без TestBed):', () => {пусть samplePage, пусть samplePageHelper ; beforeEach (() => {samplePage = новый samplePage (); samplePageHelper = новый SamplePageHelper (samplePage);}) она ( 'Шоуде действует при записи полей параметров затем перейти на следующую страницу', () => {samplePageHelper.fakeValid ( ); // samplePage.openOptionFieldBlock (); // новое значение параметра поля вызовет валидатор форм // обеспечить `goToNextPage ()` могут быть выполнены должен определить IsValid истина снова // Ошибка: IsValid уже шпионили samplePageHelper.fakeValid (); Const isSuccess = samplePage.goToNextPage (); ожидать (isSuccess) .toBeTruthy (); }) Он ( 'крикнуть справедливо, когда перейти на следующую страницу', () => {samplePageHelper.fakeValid (); Const isSuccess = samplePage.goToNextPage (); ожидать (isSuccess) .toBeTruthy ();})}); класс SamplePage {частный formService = новый FormServiceStub (); получить IsValid () {// валидатор // реальный код триггеров полевую форму как это: formService.validationAll (); вернуть this.formService.valiationAll (); } Конструктор () {} openOptionFieldBlock () {если (this.isValid) {// делаем}} коснуться goToNextPage () {если (this.isValid) {// сделать Const isSuccess коснуться = TRUE; вернуться isSuccess; } Вернуться ложным; } ShowOptionFields () {возвращает истину; }} // окурок класс FormServiceStub {valiationAll () {// это больше codition в реальном коде, возвращает истину для демонстрационного возвращения истинного; }} Класс SamplePageHelper {конструктор (общественный samplePage: SamplePage). {} FakeValid () {spyOnProperty (this.samplePage, 'IsValid') and.returnValue (истина); }} } ShowOptionFields () {возвращает истину; }} // окурок класс FormServiceStub {valiationAll () {// это больше codition в реальном коде, возвращает истину для демонстрационного возвращения истинного; }} Класс SamplePageHelper {конструктор (общественный samplePage: SamplePage). {} FakeValid () {spyOnProperty (this.samplePage, 'IsValid') and.returnValue (истина); }} } ShowOptionFields () {возвращает истину; }} // окурок класс FormServiceStub {valiationAll () {// это больше codition в реальном коде, возвращает истину для демонстрационного возвращения истинного; }} Класс SamplePageHelper {конструктор (общественный samplePage: SamplePage). {} FakeValid () {spyOnProperty (this.samplePage, 'IsValid') and.returnValue (истина); }}
Chunbin Li
1

голосов
1

ответ
423

Просмотры

Тестирование компонент, который использует службу, чтобы получить некоторые данные

У меня есть служба, которая читает некоторые данные из хранилища, а затем, основываясь на том, что данные возвращает логическое Observable. Это: импорт {инъекционные} от «@ угловой / ядро»; импорт {} Наблюдаемые из 'rxjs / Наблюдаемые'; импорт {Магазин} от '@ ngrx / магазина'; импорт *, как _ от 'lodash'; @Injectable () экспорт класса SomeService {enabledObv $: Наблюдаемое; конструктор (частный магазин: магазин) {enabledObv $ = this.store.select ( 'некоторые-магазин'); } checkIfExists $ (someData: любой): Наблюдаемое {возвращающего this.enabledObv $ .map ((DATACLASS: любой) => {возвращать _.includes (dataClass.someField, someData);}); }} Теперь, эта служба используется в качестве компонента. В частности, я использую метод checkIfExists $ против некоторых ценностей, которые у меня есть в моем компоненте. На запуске тестов я получаю сообщение об ошибке: импорт {асинхронные, ComponentFixture, TestBed} от «@ угловых / ядра / тестирований»; импорт {RouterTestingModule} от '@ угловой / маршрутизатор / тестирование'; импорт {rootReducer} от '../../../../store/root-reducer'; импорт {SomeComponent} от './some.component'; импорт {SomeService} от '../../../../shared/services/config/some.service'; описывает ( 'SomeComponent', () => {пусть компонент: SomeComponent; пусть арматура: ComponentFixture; beforeEach (асинхронный (() => {TestBed.configureTestingModule ({объявления: [SomeComponent], импорт: [// модулей, что компонент используют], провайдер: [SomeService]}) compileComponents ();})); beforeEach (() => {арматура = TestBed.createComponent (SomeComponent);. Компонент = fixture.componentInstance; fixture.detectChanges (); }); она ( 'должна создать', () => {ожидать (компонент) .toBeTruthy ();}); }); Как было предложено, добавив код компонента: экспорт класса SomeComponent реализует OnInit, OnDestroy {ifExistsA $: Наблюдаемый; // ------------------------------------------------ ------------------------------------ конструктор (частный someService: SomeService, частный магазин: магазин) {} ngOnInit () {this.initAEnabled (); } Частная initAEnabled (): пустота {this.ifExistsA $ = this.someService.checkIfExists $ (valueToBeChecked); }} Теперь ifExistsA $ используется в HTML-файл с асинхронным трубы, чтобы показать что-то. Доступ как: ifExistsA $ | асинхронный По существу, я использую ifExistsA $, чтобы показать некоторые данные, в зависимости от его присутствия в магазине. На выполнении этого теста я получаю ошибку: TypeError: Не удается прочитать свойство «DATACLASS» неопределенных Где я буду неправильно? Есть ли у меня что-то сделать с помощью службы, кроме добавления его в качестве поставщика? Есть ли у меня издеваться это? Если я должен дразнить его, я должен обеспечить некоторую ценность для DATACLASS? Если да, то как я могу это сделать?
1

голосов
1

ответ
2.1k

Просмотры

TypeError: _this.handler.handle не ошибка функции

Я получаю эту ошибку, что this.handler.handle не является функция в моем модульном тестировании в угловых 6 с помощью кармы / жасмином. Эта ошибка появляется в моей командной строке при вводе команды «Test Ng» в моей папке проекта. Chrome 67.0.3396 (Windows 10.0.0) AppComponent должен создать FAILED Ошибка: _this.handler.handle не является функцией TypeError: _this.handler.handle не функция для теста, который должен создать AppComponent вот мой .spec импорт файлов {асинхронный, ComponentFixture, TestBed} от '@ угловых / ядра / тестирований'; импорт {RouterTestingModule} от '@ угловой / маршрутизатор / тестирование'; импорт {AppComponent} от './app.component'; импорт {CUSTOM_ELEMENTS_SCHEMA} от '@ угловой / ядро'; импорт {FormsModule, FormBuilder} от '@ угловые / формы'; импорт {HttpClientModule, HttpClient, HttpHandler} от '@ угловой / общий / HTTP'; описывает ( 'AppComponent', () => {пусть компонент: AppComponent; пусть арматура: ComponentFixture; beforeEach (асинхронный (() => {TestBed.configureTestingModule ({импорт: [FormsModule, RouterTestingModule, HttpClientModule], схемы: [CUSTOM_ELEMENTS_SCHEMA] , декларации: [AppComponent], провайдеры:. [HttpClientModule, HttpClient, HttpHandler]}) compileComponents ();})); beforeEach (() => {арматура = TestBed.createComponent (AppComponent); компонент = fixture.componentInstance; крепление .detectChanges ();}); она ( 'должна создать', асинхронной (() => {ожидать (компонент) .toBeTruthy ();}));}); А вот мой импорт app.component.ts файл {Component, ViewChild, OnInit} от '@ угловой / ядро'; импорт {AuthorizationService} из 'Src / приложение / authorization.service'; импорт {Router} от '@ угловой / маршрутизатора; импорт {MdcDrawer} от '@ угловой MDC / веб'; импорт {кран, catchError} от 'rxjs / операторов'; @Component ({селектор: 'приложение-корень', templateUrl: './app.component.html', styleUrls: [»./app.component.scss']}) экспорта класс AppComponent {@ViewChild (MdcDrawer) sidenav: MdcDrawer; флип = ложь; Конструктор (частный маршрутизатор: маршрутизатор, частный authorizationService: AuthorizationService) {this.authorizationService.getAuthorization (подписка) ();. } ToggleState () {если (this.flip) {this.flip = FALSE; } Еще {this.flip = TRUE; }} GotoPage. (Маршрут: String) {this.router.navigate ([маршрут]) улов (ERR => {console.log (ERR);}); this.sidenav.close (); } Близко () {console.log ( 'ЗАКРЫТО'); this.sidenav.close (); }} А вот мой app.module.ts файл: импорт {BrowserModule} от '@ угловой / платформы браузера; импорт {NgModule, CUSTOM_ELEMENTS_SCHEMA} от '@ угловой / сердцевины'; импорт {HttpModule} от '@ угловой / HTTP'; импорт {FormsModule, ReactiveFormsModule} от '@ угловые / формы'; импорт {AppRoutingModule} от './app-routing.module'; импорт {AppComponent} от './app.component'; импорт {BrowserAnimationsModule} от «@ угловой / платформы браузера / анимации»; импорт {LayoutModule} от '@ угловая / CDK / компоновка'; импорт * в MATERIAL_MODULES от '@ угловой / материала /'; импорт * в качестве MDC_MODULES от «@ угловой MDC / веб»; импорт {TrackUpdateComponent} из». /track-update/track-update.component '; импорт {TrackUpdatePromptComponent} от './track-update-prompt/track-update-prompt.component'; импорт {NavigationBarComponent} от './navigation-bar/navigation-bar.component'; импорт {ActionToolbarComponent} от './action-toolbar/action-toolbar.component'; импорт {SaveButtonToolbarComponent} от './save-button-toolbar/save-button-toolbar.component'; импорт {HttpClientModule, HttpClient, HTTP_INTERCEPTORS} от '@ угловой / общий / HTTP'; импорт {EquipmentCardComponent} от './equipment-card/equipment-card.component'; импорт {EquipmentCardListComponent} от './equipment-card-list/equipment-card-list.component'; импорт {ListOptionsComponent} от './list-options/list-options.component'; импорт {EquipmentCardLoadingComponent} от './equipment-card-loading/equipment-card-loading.component'; импорт {GoToTopComponent} от './go-to-top/go-to-top.component'; импорт {TapActionListComponent} от './tap-action-list/tap-action-list.component'; импорт {JumpActionComponent} от './jump-action/jump-action.component'; импорт {GlobalErrorsComponent} от './global-errors/global-errors.component'; импорт {SwitchActionListComponent, AssignTrackForm} от './switch-action-list/switch-action-list.component'; импорт {AddActionComponent} от './add-action/add-action.component'; импорт {ErrorHandler} от './global-errors/error_handler'; импорт {RequestInterceptor} от './global-errors/http_interceptor'; импорт {ActionService} от»./action. оказание услуг'; импорт {TrackIdService} от './track-id-service.service'; импорт {TrackInquiryService} от './track-inquiry.service'; импорт {UserPreferenceService} от './user-preference.service'; импорт {AuthorizationService} от './authorization.service'; импорт {EquipmentInsertCardComponent} от './equipment-insert-card/equipment-insert-card.component'; импорт {LoadingIconComponent} от './loading-icon/loading-icon.component'; @NgModule ({заявления: [AppComponent, TrackUpdatePromptComponent, NavigationBarComponent, TrackUpdateComponent, ActionToolbarComponent, SaveButtonToolbarComponent, EquipmentCardComponent, EquipmentCardListComponent, ListOptionsComponent, EquipmentCardLoadingComponent, GoToTopComponent, UserPreferenceService, AuthorizationService, {обеспечивают: HTTP_INTERCEPTORS, useClass: RequestInterceptor, много: истинный}], самозагрузки: [AppComponent], схемы: [CUSTOM_ELEMENTS_SCHEMA]}) экспорт класс AppModule {} Может кто-то пожалуйста, помогите с этим? Буду премного благодарен.
Amanda Conlin
1

голосов
0

ответ
28

Просмотры

Не сообщать о пропущенных тестах с кармой-жасмин-HTML-репортером

Есть ли способ, чтобы предотвратить карма-жасмин-HTML-репортер аки kjhtml из отчетности пропущено / в ожидании тестов? Я бег несколько тестов подгонки и fdescribe, и я хочу видеть результаты только для выбранных тестов, однако, репортер всегда отображая все тесты из пакета.
Slava Fomin II
1

голосов
0

ответ
17

Просмотры

JavaScript жасмин Framework как написать тест на провал дело

Я сделал тестирование программного обеспечения с «Test пройти» дела и «тест на провал». Тест на провал дела очень важен для разработки хорошего программного обеспечения, как это, где большинство ошибок пришло. Мне интересно, как я могу писать эти виды модульных тестов с использованием рамки жасмина? Пример испытания, чтобы передать: он ( 'должен установить позицию истинно', () => {spyOn (обслуживание, 'SetPositionAsPositive'); service.SetPositionAsPositive (); ожидать (service.position) .toEqual (истина);} ); Не Надлежащий Тест на провал дело было бы что-то вроде этого: он ( «не следует устанавливать позицию ложно», () => {spyOn (обслуживание, «SetPositionAsPositive»); service.SetPositionAsPositive (); ожидать (service.position) .toEqual (ложь);}); Тем не менее, как ожидается, это не поможет мой тестовый случай вместо прохождения, который является правильным. Но я хотел бы тест, чтобы рассчитывать на неудачу не миновать. Таким образом, пропуск будет провал для такого рода тестов. Лучшее, что я придумал это ниже, однако я думаю, что это до сих пор считается тест, чтобы пройти? он ( 'не должно установить позицию ложно', () => {spyOn (обслуживание, 'SetPositionAsPositive'); service.SetPositionAsPositive (); ожидать (service.position) .not.toEqual (ложь);});
L1ghtk3ira
1

голосов
2

ответ
381

Просмотры

Testing NgRx 6 Effects

Я пытаюсь протестировать ngrx эффектов в угловом 6 проекта, я всегда получаю ошибку: Ожидаемые $ [0] .notification.kind = «C» равного «N». Ожидаемые $ [0] .notification.hasValue = ложь равной правды. Я попробовал этот пост https://brianflove.com/2018/06/28/ngrx-testing-effects/ и один в ngrx док. Есть ли какое-либо требование, чтобы сделать тест на эффектах с ngrx 6? Ошибка не достаточно значима для меня. Может быть, кто-то есть полный пример о том, как это сделать? Вот мой эффект: initData $: Наблюдаемое = this.actions $ .pipe (OfType (INIT_DATA_ACTION), switchMap ((данные:. Есть) => {вернуться this.store.pipe (выберите (getAppDataResolved)) взять (1) .switchMap ((решение: любой) => {если (разрешен) {вернуться this.dataService.getInitData (this.loginService.user.id) .switchMap ((ответ: любой) => {Вернуть Observable.from ([новый ItemsInitDataAction (response.userItems), новый InitDataResolvedAction (),]); }); } Еще {вернуть Observable.from ([новый InitDataResolvedAction (),]); }}); }),); и моя карма тест: он ( 'должен быть создан', () => {ожидать (эффекты) .toBeTruthy (); // получили успех}); он ( 'базовый тест', () => {// есть ошибки константного действия = новый appAction.InitDataAction (); константный исход = новый appAction.InitDataResolvedAction (); actions.stream = горячее ( 'а', {а: действие }); Const ожидать = горячий ( 'а', {Ь:. результат}); ожидать (effects.initData $) toBeObservable (ожидаемое);}); });
Laurent B
1

голосов
0

ответ
266

Просмотры

How to do unit testing for Http delete in angular 6?

Я хочу написать модульное тестирование для удаления записей из сетки. Ниже delete.component.ts файл, в котором метод deleteRecord показан deleteRecord (ID: строка): пустота {сопз результат = подтверждение ( «Вы уверены, что хотите удалить запись»); если (результат) {this.deleteService.deleteRecord (ID) .subscribe (() => {Const индекс = this.gridDetails.findIndex ((я) => i.id === ID); this.gridDetails.splice ( индекс 1) предупреждение ( "Удалено успешно");}, (ошибка: ErrorResponse) => {Alert ( "Не удалось выполнить удаление");}); }} Ниже delete.service.ts файл deleteRecord (ID: строка): Наблюдаемое {вернуть this.http.delete ( 'HTTP: / А / сервер / API / блог /' + идентификатор);} Ниже delete.component. spec.ts файл, он ( 'следует удалить запись из сетки на нажатие оК', () => {spyOn (компонент, 'deleteRecord'). и. callThrough (); spyOn (окно 'подтверждение') and.returnValue (истина). component.deleteRecord (mockDeleteService.id); ожидать (component.deleteRecord) .toHaveBeenCalled (); }); он ( 'не должен удалять запись из сетки на щелчку отменить', () => {spyOn (компонент, 'deleteRecord') and.callThrough ();.. spyOn (окно 'подтверждение') and.returnValue (ложь) ; ожидать (component.deleteRecord) .not.toHaveBeenCalled ();}); Пожалуйста, помогите мне в письменной форме / улучшение модульных тестов для указанной выше коды ожидать (component.deleteRecord) .not.toHaveBeenCalled (); }); Пожалуйста, помогите мне в письменной форме / улучшение модульных тестов для указанной выше коды ожидать (component.deleteRecord) .not.toHaveBeenCalled (); }); Пожалуйста, помогите мне в письменной форме / улучшение модульных тестов для указанной выше коды
Mounika Vengala
1

голосов
0

ответ
66

Просмотры

Angular 6 test httpclient post method

Как бы идти о тестировании этого? Методы HTTP и часть внутри метода подписки. Я хотел бы извлечь некоторые из логики в сервис, но у меня нет такого выбора. Am с помощью угловых 6, который использует карму annd жасмин. экспорт класс ProviderSubTypeAddEditComponent реализует OnInit {onSubmit () {если (this.isedit!) {this.httpClient.post ( `$ {e.serverURL} $ {this.url}`, {имя: this.form.get ( 'providerTypeLabel ') .value, provider_type: this.form.get (' ') значение,}) .subscribe (данные => {this.saveaction.emit (истина); this.snotifyService.async (' selectedOption Пожалуйста, подождите ... 'this.successAction) .eventEmitter.subscribe (д => {если (д ===' скрытый ') {если (this.hasback) {this.router.navigateByUrl (' / provider_sub_types / список '); }}}); }, Ошибка => {this.snotifyService.error ( "Произошла ошибка Пожалуйста, обратитесь в службу поддержки.")},); } Еще {// патч действия this.httpClient.patch ( `$ {e.serverURL} $ {this.url} $ {this.providerid} /`, {имя:. Значение this.form.get ( 'providerTypeLabel') ., provider_type: this.form.get ( 'selectedOption') значение,}) .subscribe (данные => {this.patchaction.emit (истина); this.snotifyService.success ( "Provider подтип успешно изменен.")}, ошибка => {this.snotifyService.error ( "Произошла ошибка Незлая обратитесь в службу поддержки..")},); }}} Любая помощь будет оценена. Благодарю.
Vincent J. Michuki
1

голосов
0

ответ
395

Просмотры

Как издевается «

Мне нужно, чтобы написать блок прецедентом для того, под управлением, которые принимают только JSon файл. Мне нужно установить макет в JSON-файл, чтобы увеличить мой отчет покрытия кода.
Pradeep devendran
1

голосов
1

ответ
33

Просмотры

Как написать Unit Test Case для ниже функции JavaScript с помощью жасмин

Как написать Unit Test Case для ниже функции JavaScript с помощью жасмин? Функция GetURLParameter (sParam) {вар sPageURL = window.location.search.substring (1); вар sURLVariables = sPageURL.split ( '&'); для (вар я = 0; я <sURLVariables.length; я ++) {вар sParameterName = sURLVariables [I] .split ( '='); если (sParameterName [0] == sParam) {вернуть sParameterName [1]; }}}
Mandeep Rehal
1

голосов
1

ответ
599

Просмотры

Как издеваются событие и передать его в метод в тестах жасмин?

Я новичок Жасмин испытаний, и я пытаюсь написать модульный тест для события изменения, что требует события как притворное значение в аргументе методы, и я не в состоянии достичь. это то, что я пробовал ( 'тестовый образец', () => {сопз скомпилирован = fixture1.debugElement; Const событие = {preventDefault: jasmine.createSpy (), srcElement: jasmine.createSpy ()}; spyOn (component1, 'OnChange'); Const = выберите compiled.query (By.css ( '# избранный меню')) nativeElement;. select.value = select.options [1] .value; select.dispatchEvent (новое событие ( 'изменить' )); fixture1.detectChanges (); ожидать (component1.onChange) .toHaveBeenCalled (); `мой HTML-код выглядит следующим образом некоторые значения {{линии. имя}} мой метод компонент, который будет называться по изменению OnChange ($ событие) {Const выбран = ParseInt ($ event.target.value); Переключатель (выбрано) {случай 1: {// некоторая логика перерыв; }} Я хочу написать тест, чтобы проверить положительные и отрицательные потоки в случае 1.
Curious Coder
1

голосов
2

ответ
209

Просмотры

Error of 'appendchild' of null during running ng test in angular 6

I have an angular 6 project with typescript 2.8.0 and node version 11. I have a functional dev application and trying to setup a unit testing environment with jasmine karma, due to limited knowledge about these frameworks I am not able to debug the following error. ERROR: TypeError: Cannot read property 'appendChild' of null TypeError: Cannot read property 'appendChild' of null at HtmlReporter.specDone (http://localhost:9876/base/node_modules/karma-jasmine-html-reporter/src/lib/html.jasmine.reporter.js?a380599bba71e79ed6dc82aa9a857815d894cfda:150:15) at dispatch (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:4560:28) at ReportDispatcher.specDone (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:4531:11) at Spec.specResultCallback [as resultCallback] (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:1249:18) at complete (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:567:12) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:421:1) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:188:1) at drainMicroTaskQueue (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:595:1) I have commented every spec in all the spec files, but still the following error resulted. But my mere concern is that the error is due to some incorrect configuration in karma.conf.ts The following is my karme.config.ts file, please suggest me the correction to the environment ready. // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular-devkit/build-angular/plugins/karma') ], client:{ clearContext: false // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { dir: require('path').join(__dirname, 'coverage'), reports: [ 'html', 'lcovonly' ], fixWebpackSourcePaths: true }, angularCli: { environment: 'dev' }, reporters: ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], singleRun: false }); }; Edit: The following is one of my spec files, and it has only one spec which is commented. So there are no spec methods that are running. import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { PassbackComponent } from './passback.component'; describe('PassbackComponent', () => { let component: PassbackComponent; let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ PassbackComponent ] }) .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(PassbackComponent); component = fixture.componentInstance; fixture.detectChanges(); }); // it('should create', () => { // expect(component).toBeTruthy(); // }); }); There are a lot of similar questions in StackOverflow but none of them solves because others are of incorrect specs but mine if of possibly some other reason Thank you so much in advance.
shitterpunk
1

голосов
0

ответ
27

Просмотры

Как получить аргумент в test.ts

Я хочу, чтобы проверить конкретный компонент на нажатие кнопки. Для этого мне нужно передать имя компонента в моем test.ts. Я пытаюсь передать аргумент через @Input, но это не работает. Я попытался с @input, но не полезно // Этот файл необходим karma.conf.js и загружает рекурсивно все ввозных .spec и рамочные файлы «zone.js / расстояние / зона тестирования»; импорт {getTestBed} от '@ угловой / ядро ​​/ тестирования'; импорт {BrowserDynamicTestingModule, platformBrowserDynamicTesting} от «@ угловой / платформы браузера динамический / тестирование»; объявить сопзЬ требуют: любой; . GetTestBed () initTestEnvironment (BrowserDynamicTestingModule, platformBrowserDynamicTesting ()); Const контекст = require.context ( './', правда, /defualt-ammenu-list.component\.spec\.ts$/); . Context.keys () карта (контекст);
Shreea Kapoor
1

голосов
0

ответ
87

Просмотры

как импортировать ES6 модули в карму

Я пытаюсь сделать некоторые тесты с кармой, мокко и Chai. Я запутался, как правильно импортировать модуль ES6 в карму. Я уже использую карма-Бабель-препроцессор. Может кто-нибудь мне помочь, спасибо! Здесь ошибка при запуске теста НПМ Вот мой karma.conf.js module.exports = функция (конфигурации) {config.set ({BasePath: '', рамки: [ 'Мокко', 'Chai'], файлы: [ 'SRC / index.js', 'тест / test_karma.js'], исключить: [], препроцессоры: { 'SRC / index.js': [ 'Бабель], 'тест / test_karma.js': [' Бабель ]}, babelPreprocessor: {опция: {предустановки: [ '@ столпотворение / предустановка-ENV']}}, репортеры: [], порт 'прогресс': 9876, цвет: правда, LOGLEVEL: config.LOG_INFO, autoWatch: правда, браузеры: [» ChromeHeadless', 'Chrome'], singleRun: ложь, параллелизм: бесконечность})} Вот мой index.js Const SayHello = () => {возвращение 'привет карма'} экспорт {SayHello} Вот мой test_karma.js импорт { SayHello} от '../src/index'; импорт Chai из 'Chai'; описывают ( 'тест', () => {это ( 'тест', () => {chai.assert (SayHello () === 'Привет', 'что-нибудь')})})
smilebuz
1

голосов
0

ответ
25

Просмотры

Http ответ отказа для (неизвестно URL): 0 Неизвестная ошибка на единицу работает жасмин тест без бэкэндом

Ошибка HTTP ответ Отказ приходит, когда я бегу тестовых случаев без веб-API. Когда веб-апи работает, тесты работают отлично Ниже мой фрагмент кода: beforeEach (асинхронная (() => {TestBed.configureTestingModule ({декларации: [PlanDirectiveReadOnlyComponent, TitleCasePipe, PlanDirectivePhaseComponent, StructureComponent, EditPhaseComponent, TotalPhaseComponent, GoalIntellisenseComponent] импорт: [HttpClientModule, FormsModule, ReactiveFormsModule, DialogModule, TableModule, RouterTestingModule], провайдеры: [PlanOrderService, {обеспечивают: ActivatedRoute, useValue: {PARAMS: Observable.of ({OrderId: 'Order_2'})}}, AppService, PlanDirectiveTemplateDetailsService , ConfirmationService]}) .compileComponents (); })); beforeEach (() => {арматуре = TestBed.createComponent (PlanDirectiveReadOnlyComponent); planDirectiveTemplateDetails = TestBed.get (PlanDirectiveTemplateDetailsService); appService = TestBed.get (AppService); компонент = fixture.componentInstance; originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; jasmine.DEFAULT_TIMEOUT_INTERVAL = 100000;}); afterEach (функция () {jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;}); она ( 'должна создать', () => {spyOn (компонент, 'getPatient') and.returnValue (истина);. ожидать (компонент) .toBeTruthy ();}); он ( 'должен получать детали пациента, используя идентификатор заказа', асинхр (() => {planDirectiveTemplateDetails = TestBed.get (PlanDirectiveTemplateDetailsService); Const пациента = {ID: 'pat_1', AnonymizedID: 'abnhuio rtret', имя: 'Abene СЕНАТОР СНОУ'}; spyOn (planDirectiveTemplateDetails, 'getPatientByOrderId') and.callFake (() => {возврата Observable.of (пациента);}). component.getPatient (); fixture.whenStable (), а затем (() => {ожидать (component.appService.objPlanDirectiveDetails.isBackButtonPressed) .toBeFalsy ();. (component.patientLastNameCharacter ожидать) .toEqual ( 'A'); ожидать (component.patientFirstNameCharacter) .toEqual ( 'S');}); })); fixture.whenStable (; он ( 'должен извлечь данные из URL', асинхр (() => {spyOn (planDirectiveTemplateDetails, 'getStructureSetIdByorderId') and.returnValue (Observable.of ( 'CT_1'));. (component.routeParameters) ) .then (() => {Ожидать (component.orderId) .toBe ( 'Order_2'); ожидать (component.structuresetId) .toBe ( 'CT_1'); }); })); он ( 'должен получить данные инструкции лечение из БД', асинхр (() => {treatmentInst = `{ "Идентификатор": "6a10990d-6696-480d-b9f2-3024add297c1", "отображаемое_имя": "Тест шаблона",«AnatomicalRegion ":" таз " "AnatomicalSite": "простата", "весла": { "Структура": [{ "Id": "OAR1", "Кодекс": "15900", "схема": "FMA"," SchemaVersion ":" 3,2" , "Значение": "Controlateral груди", "Цвет": нулевой, "Имя": "Controlateral груди"}, { "Id": "OAR2", "кодекс": "14544",
Nilesh Gupta
1

голосов
0

ответ
17

Просмотры

«NO_ERRORS_SCHEMA» на жасмин Testbed вызывая запустить полный набор тестов, несмотря на «fdescribe»

Когда я включаю схемы: [NO_ERRORS_SCHEMA] в жасминовом Testbed, я получаю все тесты в моем номере, чтобы работать, несмотря на письменное fdescribe к этому конкретному компоненту. У меня есть другие тесты, работающие с ним, но никто не показал это поведение. Кто-нибудь знает, как решить или отлаживать его?
Giovana Zampieri
1

голосов
2

ответ
278

Просмотры

Ошибка: StaticInjectorError (DynamicTestModule) [RouterLinkWithHref -> Router]: (NullInjectorError: Нет поставщика для маршрутизатора!)

Готовлю блок тестового примера для AppComponent, которые имеют маршрутизатор в качестве закачиваемой зависимости и включил RouterTestingModule в моей тестовой постели. Но до сих пор получают странные ошибки. Пожалуйста, найдите журнал об ошибке, показанное ниже: Ошибка: StaticInjectorError (DynamicTestModule) [RouterLinkWithHref -> Router]: StaticInjectorError (Платформа: ядро) [RouterLinkWithHref -> Router]: NullInjectorError: Нет поставщика для маршрутизатора! свойства ошибок: Object ({ngTempTokenPath: нуль, ngTokenPath: [ 'RouterLinkWithHref', функция], ngDebugContext: DebugContext _ ({вид: Object ({Защиту: Object ({завод: Функция, nodeFlags: 671753, rootNodeFlags: 1, nodeMatchedQueries: 0 , флаги: 0, узлы: [Объект ({nodeIndex: 0, родительские: нулевой, renderParent: нулевая, bindingIndex: 0, outputIndex: 0, checkIndex: 0, флаги: 1, childFlags: 671753, directChildFlags: 1, Нет поставщика для маршрутизатора! на NullInjector.get (WebPack: ///./node_modules/@angular/core/fesm5/core.js: 1360: 19) resolveToken (WebPack: ///./node_modules/@angular/core/fesm5/core .js: 1598: 24) в tryResolveToken (WebPack: ///./node_modules/@angular/core/fesm5/core.js: 1542: 16) в StaticInjector.get (WebPack: ///./node_modules/ @ угловая / ядро ​​/ fesm5 / core.js: 1439: 20) в resolveToken (WebPack: ///./node_modules/@angular/core/fesm5/core.js: 1598: 24) в tryResolveToken (WebPack: / //./node_modules/@angular/core/fesm5/core.js?:1542:16) в StaticInjector.get (WebPack: ///./node_modules/@angular/core/fesm5/core.js: 1439: 20) при resolveNgModuleDep (WebPack: ///./node_modules/@angular/core/fesm5/core.js: 8667: 29) в NgModuleRef_.get (WebPack: ///./node_modules/@angular/core/fesm5 /core.js?:9355: 16) в resolveDep (WebPack: ///./node_modules/@angular/core/fesm5/core.js: 9720: 45) Пожалуйста, помогите. Я уже попытался удалить маршрутизатор ссылку из моего шаблона. TestBed.configureTestingModule ({декларации: [AppComponent], импорт: [CoreModule.forRoot (), RouterTestingModule.withRoutes (маршруты),], провайдеры: [{обеспечивают: APP_BASE_HREF, useValue: '/'},]}
aakash garg
1

голосов
0

ответ
514

Просмотры

WARN [промежуточное программное обеспечение: карма]: Invalid типа файла, по умолчанию JS. Т.С.

При запуске модульного тестирования с помощью кармы, я получил эти предупреждения: 12 02 2019 14: 01: 05,740: WARN [промежуточное программное обеспечение: карма]: Invalid типа файла, по умолчанию JS. TS 12 02 2019 14: 01: 05,741: WARN [промежуточное программное обеспечение: карма]: Invalid тип файла, по умолчанию JS. ц я предположил, что тип файла karma.conf.js вызвал вопрос, поэтому я изменил его на karma.conf.ts. Однако этот вопрос до сих пор происходило, так что было бы здорово, если бы кто-то может сказать мне, как отключить это предупреждение. Ниже подаст karma.conf.ts module.exports = функция karmaConfig (конфигурация) {config.set ({singleRun: правда, рамки: [ 'жасмин'], файлы:. [ «SDK / ** / * spec.ts '], препроцессоры: { '/ ** SDk / * spec.ts.': [' Webpack ' 'sourcemap'], 'SDK / ** / (* спецификация.) .ts!': [' {Статистика: 'ошибки только'}, LOGLEVEL: config.LOG_INFO,}); }; Я использую WebPack 4.16.5 и карма 4.0.0
Nguyen Phong Thien
1

голосов
2

ответ
39

Просмотры

Ошибка: [$ Инжектор: modulerr] angularjs 1,7 и жасмин

controller.js вар TestApp = angular.module ( 'TestApp', [ 'testModule']); angular.module ( 'testModule') .component ( 'testModule', {шаблон: 'некоторые вещи будут здесь', контроллер: [ '$ сфера', '$ HTTP', функция testController ($ сфера, $ HTTP) {$ scope.z = 0; $ scope.sum = функция () {$ scope.z = $ scope.x + $ scope.y;};}]}); test.js описывают ( 'testModule', функция () {beforeEach (модуль ( 'TestApp')); вар $ контроллера; beforeEach (инъекционные (функция (_ $ _ контроллер) {$ _ контроллер = $ controller_;})); описывают ( '' тесты, функция () {// директива тест я // тест контроллера его ( '1 + 2 должно быть равно 3', функция () {$ вар Объем = {}; Контроллер вар = $ контроллера ( 'testController', $ {объем: $ Объем}); $ Scope.x = 1; $ Scope.y = 2; $ Scope.sum (); ожидать ($ scope.z) .toBe (3); }); // эксплуатационное испытание его ( 'HTTP GET тест', инъекционные (функция ($ HTTP, $ httpBackend) {$ вар сфера = {}; вар контроллер = $ контроллер ( 'testController', {$ сфера: $ сфера}); $ http.get ( 'HTTP: // локального / Ибрахим') .success (функция (данные, статус, заголовки, конфигурация) {$ scope.valid = истина; $ scope.response = данные;}) .error (функция (данные , статус, заголовки, конфигурация) {$ scope.vaid = ложь;}); $ HttpBackend .when ( 'GET', 'HTTP: // локальный / Ibrahim') .respond (200, {имя: 'Ибрахим', страна: 'швеция'}); $ HttpBackend.flush (); ожидать ($ scope.valid) .toBe (истина); ожидать ($ scope.response) .toEqual ({имя: 'Ибрахим', страна: 'швеция'}); })); }); }); Я получаю эту ошибку об ошибке: [$ форсунку: modulerr] http://errors.angularjs.org/1.4.0-rc.2/$injector/modulerr?p0=testApp&p1=Error%3A%20%5B%24injector% 3Amodulerr% 5D% 20http% 3A% 2F% 2Ferrors.angularjs.org% 2F1.4.0-гс. workFn (Библиотека / угловатые-mocks.js: 2409: 56) в Chrome 72.0.3626 (Windows 10.0.0) ERROR { "сообщение": «ошибка была брошена в Afterall \ nUncaught Ошибка: [$ Инжектор: nomod] HTTP: //errors.angularjs.org/1.4.0-rc.2/$injector/nomod?p0=testModule " "ул":" ошибка была брошена в Afterall \ nUncaught ошибка: [$ инжектор: nomod] HTTP: / /errors.angularjs.org/1.4.0-rc.2/$injector/nomod?p0=testModule»} у меня нет ошибки, если я просто использовать этот код контроллера angular.module („TestApp“, []) .controller ( 'testController', функция testController ($ Объем, $ HTTP) {$ scope.z = 0; $ scope.sum = функция () {$ scope.z = $ scope.x + $ scope.y;};}); Но я хочу, чтобы проверить директивы тоже. Я не понимаю, как я хотел бы сделать это без шаблона. Почему я получаю эту ошибку и как ее решить? Или S есть способ проверить директивы без написания шаблона? Спасибо
Thunfische
1

голосов
1

ответ
43

Просмотры

угловые 7 rxjs обновить неудачу модульных тестов

Hoping someone can shed some light on this, new to angular and rxjs. After upgrading from Angular 5 to 7, and rxjs 5 to 6, I'm getting some failing unit tests that had passed. util.service.ts handleError(error: HttpErrorResponse | any) { let errors: any = []; if (error instanceof HttpErrorResponse) { if (error.status) { switch (error.status) { case 400: errors = error.error.errors || ''; break; case 401: errors = [{ status: error.status, message: 'Please log in.' }]; return Observable; case 403: errors = [{ status: error.status, message: 'Access denied.' }]; break; case 404: errors = [{ status: error.status, message: 'The requested application is not found.' }]; break; case 500: errors = [ { status: error.status, message: 'Sorry, we were unable to process your request. Please try again.' } ]; break; default: errors = [{ status: error.status }]; } return throwError(errors); } } try { errors = error.error.errors; return throwError(errors); } catch (err) { return throwError([ { status: 500, message: 'Sorry, we were unable to process your request. Please try again.' } ]); } } util.service.spec.ts it('should throw an observable if response has status 404', () => { const response = new HttpErrorResponse({ status: 404, error: { errors: ['error'] } }); expect(service.handleError(response)).toEqual( throwError([{ status: 404, message: 'The requested application is not found.' }]) ); }); Karma Error Error: Expected $._subscribe = Function to equal Function. at stack (http://localhost:9876/absolute/Users/mtlaney/Desktop/coding_monkey/fs-open-forest-platform/frontend/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:2455:17) at buildExpectationResult (http://localhost:9876/absolute/Users/mtlaney/Desktop/coding_monkey/fs-open-forest-platform/frontend/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:2425:14) at Spec.expectationResultFactory (http://localhost:9876/absolute/Users/mtlaney/Desktop/coding_monkey/fs-open-forest-platform/frontend/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:901:18) at Spec.addExpectationResult (http://localhost:9876/absolute/Users/mtlaney/Desktop/coding_monkey/fs-open-forest-platform/frontend/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:524:34) at Expectation.addExpectationResult (http://localhost:9876/absolute/Users/mtlaney/Desktop/coding_monkey/fs-open-forest-platform/frontend/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:845:21) at Expectation.toEqual (http://localhost:9876/absolute/Users/mtlaney/Desktop/coding_monkey/fs-open-forest-platform/frontend/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?0b1eaf7a13cae32191eadea482cfc96ae41fc22b:2369:12) at UserContext.it (http://localhost:9876/_karma_webpack_/webpack:/src/app/_services/util.service.spec.ts:59:43) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:391:1) at ProxyZoneSpec.push../node_modules/zone.js/dist/proxy.js.ProxyZoneSpec.onInvoke (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/proxy.js:129:1) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:390:1) I've changed everything from Observable.throw to rxjs new throwError. Any help would be greatly appreciated!!
MTL

Просмотр дополнительных вопросов